tcp: avoid fr segments less than mss if possible
[vpp.git] / src / vnet / srp / node.c
index 926cb7c..26c3f0b 100644 (file)
@@ -40,6 +40,7 @@
 #include <vlib/vlib.h>
 #include <vnet/ip/ip_packet.h> /* for ip_csum_fold */
 #include <vnet/srp/srp.h>
+#include <vnet/pg/pg.h>
 
 srp_main_t srp_main;
 
@@ -861,15 +862,27 @@ vlib_node_registration_t srp_ips_process_node = {
     .state = VLIB_NODE_STATE_DISABLED,
 };
 
+static void
+srp_setup_node (vlib_main_t *vm, u32 node_index)
+{
+  vlib_node_t *n = vlib_get_node (vm, node_index);
+  pg_node_t *pn = pg_get_node (node_index);
+  n->format_buffer = format_srp_header_with_length;
+  n->unformat_buffer = unformat_srp_header;
+  pn->unformat_edit = unformat_pg_srp_header;
+}
+
 static clib_error_t * srp_init (vlib_main_t * vm)
 {
   srp_main_t * sm = &srp_main;
 
   sm->default_data_ttl = 255;
   sm->vlib_main = vm;
-  vlib_register_node (vm, &srp_ips_process_node);
-  vlib_register_node (vm, &srp_input_node);
-  vlib_register_node (vm, &srp_control_input_node);
+  vlib_register_node (vm, &srp_ips_process_node, "%s",
+                     srp_ips_process_node.name);
+  vlib_register_node (vm, &srp_input_node, "%s", srp_input_node.name);
+  vlib_register_node (vm, &srp_control_input_node, "%s",
+                     srp_control_input_node.name);
   srp_setup_node (vm, srp_input_node.index);
 
   return 0;