VPP-1027: DNS name resolver
[vpp.git] / src / vnet / udp / udp.h
index 7ab26ce..aa37701 100644 (file)
@@ -78,9 +78,11 @@ typedef enum
 } udp_error_t;
 
 #define foreach_udp4_dst_port                  \
+_ (53, dns)                                    \
 _ (67, dhcp_to_server)                          \
 _ (68, dhcp_to_client)                          \
 _ (500, ikev2)                                  \
+_ (2152, GTPU)                                 \
 _ (3784, bfd4)                                  \
 _ (3785, bfd_echo4)                             \
 _ (4341, lisp_gpe)                              \
@@ -88,19 +90,25 @@ _ (4342, lisp_cp)                           \
 _ (4739, ipfix)                                 \
 _ (4789, vxlan)                                        \
 _ (4789, vxlan6)                               \
-_ (4790, vxlan_gpe)                            \
-_ (6633, vpath_3)
+_ (4790, VXLAN_GPE)                            \
+_ (6633, vpath_3)                              \
+_ (6081, geneve)                               \
+_ (53053, dns_reply)
 
 
 #define foreach_udp6_dst_port                   \
+_ (53, dns6)                                   \
 _ (547, dhcpv6_to_server)                       \
 _ (546, dhcpv6_to_client)                      \
+_ (2152, GTPU6)                                        \
 _ (3784, bfd6)                                  \
 _ (3785, bfd_echo6)                             \
 _ (4341, lisp_gpe6)                             \
 _ (4342, lisp_cp6)                             \
-_ (4790, vxlan6_gpe)      \
-_ (6633, vpath6_3)
+_ (4790, VXLAN6_GPE)                            \
+_ (6633, vpath6_3)                             \
+_ (6081, geneve6)                              \
+_ (53053, dns_reply6)
 
 typedef enum
 {
@@ -146,6 +154,13 @@ typedef struct
   uword *dst_port_info_by_name[N_UDP_AF];
   uword *dst_port_info_by_dst_port[N_UDP_AF];
 
+  /* Sparse vector mapping udp dst_port in network byte order
+     to next index. */
+  u16 *next_by_dst_port4;
+  u16 *next_by_dst_port6;
+  u8 punt_unknown4;
+  u8 punt_unknown6;
+
   /* convenience */
   vlib_main_t *vlib_main;
 } udp_main_t;