VPP-1506: dump local punts and registered punt sockets
[vpp.git] / src / vnet / udp / udp_local.c
index bb7305d..a16ba22 100644 (file)
@@ -549,6 +549,22 @@ udp_unregister_dst_port (vlib_main_t * vm, udp_dst_port_t dst_port, u8 is_ip4)
   n[0] = SPARSE_VEC_INVALID_INDEX;
 }
 
+bool
+udp_is_valid_dst_port (udp_dst_port_t dst_port, u8 is_ip4)
+{
+  udp_main_t *um = &udp_main;
+  u16 *n;
+
+  if (is_ip4)
+    n = sparse_vec_validate (um->next_by_dst_port4,
+                            clib_host_to_net_u16 (dst_port));
+  else
+    n = sparse_vec_validate (um->next_by_dst_port6,
+                            clib_host_to_net_u16 (dst_port));
+
+  return (n[0] != SPARSE_VEC_INVALID_INDEX);
+}
+
 void
 udp_punt_unknown (vlib_main_t * vm, u8 is_ip4, u8 is_add)
 {