aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/quic/quic.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/quic/quic.c')
-rw-r--r--src/plugins/quic/quic.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/plugins/quic/quic.c b/src/plugins/quic/quic.c
index 38f41ba8291..3d0da256fb6 100644
--- a/src/plugins/quic/quic.c
+++ b/src/plugins/quic/quic.c
@@ -30,6 +30,11 @@
#include <quicly/defaults.h>
+static char *quic_error_strings[] = {
+#define quic_error(n,s) s,
+#include "quic_error.def"
+#undef quic_error
+};
static quic_main_t quic_main;
static void quic_update_timer (quic_ctx_t * ctx);
@@ -225,6 +230,13 @@ quic_connection_delete (quic_ctx_t * ctx)
quic_ctx_free (ctx);
}
+void
+quic_increment_counter (u8 evt, u8 val)
+{
+ vlib_main_t *vm = vlib_get_main ();
+ vlib_node_increment_counter (vm, quic_input_node.index, evt, val);
+}
+
/**
* Called when quicly return an error
* This function interacts tightly with quic_proto_on_close
@@ -326,6 +338,9 @@ quic_send_datagram (session_t * udp_session, quicly_datagram_t * packet)
QUIC_DBG (1, "Not enough space to enqueue payload");
return QUIC_ERROR_FULL_FIFO;
}
+
+ quic_increment_counter (QUIC_ERROR_TX_PACKETS, 1);
+
return 0;
}
@@ -1959,6 +1974,7 @@ quic_process_one_rx_packet (u64 udp_session_handle,
return 1;
}
+ quic_increment_counter (QUIC_ERROR_RX_PACKETS, 1);
rv = 0;
quic_build_sockaddr (sa, &salen, &ph.rmt_ip, ph.rmt_port, ph.is_ip4);
quicly_ctx = quic_get_quicly_ctx_from_udp (udp_session_handle);
@@ -2315,6 +2331,24 @@ VLIB_PLUGIN_REGISTER () =
.description = "Quic transport protocol",
.default_disabled = 1,
};
+
+static uword
+quic_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
+ vlib_frame_t * frame)
+{
+ return 0;
+}
+
+/* *INDENT-OFF* */
+VLIB_REGISTER_NODE (quic_input_node) =
+{
+ .function = quic_node_fn,
+ .name = "quic-input",
+ .vector_size = sizeof (u32),
+ .type = VLIB_NODE_TYPE_INTERNAL,
+ .n_errors = ARRAY_LEN (quic_error_strings),
+ .error_strings = quic_error_strings,
+};
/* *INDENT-ON* */
/*