diff --git a/src/vnet/geneve/geneve.c b/src/vnet/geneve/geneve.c
index fe35c6c..8b773c1 100644
--- a/src/vnet/geneve/geneve.c
+++ b/src/vnet/geneve/geneve.c
@@ -623,6 +623,17 @@
   if (sw_if_indexp)
     *sw_if_indexp = sw_if_index;
 
+  if (a->is_add)
+    {
+      /* register udp ports */
+      if (!is_ip6 && !udp_is_valid_dst_port (UDP_DST_PORT_geneve, 1))
+	udp_register_dst_port (vxm->vlib_main, UDP_DST_PORT_geneve,
+			       geneve4_input_node.index, 1);
+      if (is_ip6 && !udp_is_valid_dst_port (UDP_DST_PORT_geneve6, 0))
+	udp_register_dst_port (vxm->vlib_main, UDP_DST_PORT_geneve6,
+			       geneve6_input_node.index, 0);
+    }
+
   return 0;
 }
 
@@ -1115,11 +1126,6 @@
 				       sizeof (ip46_address_t),
 				       sizeof (mcast_shared_t));
 
-  udp_register_dst_port (vm, UDP_DST_PORT_geneve,
-			 geneve4_input_node.index, /* is_ip4 */ 1);
-  udp_register_dst_port (vm, UDP_DST_PORT_geneve6,
-			 geneve6_input_node.index, /* is_ip4 */ 0);
-
   fib_node_register_type (FIB_NODE_TYPE_GENEVE_TUNNEL, &geneve_vft);
 
   return 0;
diff --git a/src/vnet/vxlan-gpe/vxlan_gpe.c b/src/vnet/vxlan-gpe/vxlan_gpe.c
index 89e7a3c..ca17c12 100644
--- a/src/vnet/vxlan-gpe/vxlan_gpe.c
+++ b/src/vnet/vxlan-gpe/vxlan_gpe.c
@@ -743,6 +743,17 @@
   if (sw_if_indexp)
     *sw_if_indexp = sw_if_index;
 
+  if (a->is_add)
+    {
+      /* register udp ports */
+      if (!is_ip6 && !udp_is_valid_dst_port (UDP_DST_PORT_VXLAN_GPE, 1))
+	udp_register_dst_port (ngm->vlib_main, UDP_DST_PORT_VXLAN_GPE,
+			       vxlan4_gpe_input_node.index, 1 /* is_ip4 */ );
+      if (is_ip6 && !udp_is_valid_dst_port (UDP_DST_PORT_VXLAN6_GPE, 0))
+	udp_register_dst_port (ngm->vlib_main, UDP_DST_PORT_VXLAN6_GPE,
+			       vxlan6_gpe_input_node.index, 0 /* is_ip4 */ );
+    }
+
   return 0;
 }
 
@@ -1253,11 +1264,6 @@
 				       sizeof (mcast_shared_t));
   ngm->vtep6 = hash_create_mem (0, sizeof (ip6_address_t), sizeof (uword));
 
-  udp_register_dst_port (vm, UDP_DST_PORT_VXLAN_GPE,
-			 vxlan4_gpe_input_node.index, 1 /* is_ip4 */ );
-  udp_register_dst_port (vm, UDP_DST_PORT_VXLAN6_GPE,
-			 vxlan6_gpe_input_node.index, 0 /* is_ip4 */ );
-
   /* Register the list of standard decap protocols supported */
   vxlan_gpe_register_decap_protocol (VXLAN_GPE_PROTOCOL_IP4,
 				     VXLAN_GPE_INPUT_NEXT_IP4_INPUT);
diff --git a/src/vnet/vxlan/vxlan.c b/src/vnet/vxlan/vxlan.c
index ff796ec..52d0812 100644
--- a/src/vnet/vxlan/vxlan.c
+++ b/src/vnet/vxlan/vxlan.c
@@ -639,6 +639,17 @@
   if (sw_if_indexp)
     *sw_if_indexp = sw_if_index;
 
+  if (a->is_add)
+    {
+      /* register udp ports */
+      if (!is_ip6 && !udp_is_valid_dst_port (UDP_DST_PORT_vxlan, 1))
+	udp_register_dst_port (vxm->vlib_main, UDP_DST_PORT_vxlan,
+			       vxlan4_input_node.index, 1);
+      if (is_ip6 && !udp_is_valid_dst_port (UDP_DST_PORT_vxlan6, 0))
+	udp_register_dst_port (vxm->vlib_main, UDP_DST_PORT_vxlan6,
+			       vxlan6_input_node.index, 0);
+    }
+
   return 0;
 }
 
@@ -1255,11 +1266,6 @@
 				       sizeof (ip46_address_t),
 				       sizeof (mcast_shared_t));
 
-  udp_register_dst_port (vm, UDP_DST_PORT_vxlan,
-			 vxlan4_input_node.index, /* is_ip4 */ 1);
-  udp_register_dst_port (vm, UDP_DST_PORT_vxlan6,
-			 vxlan6_input_node.index, /* is_ip4 */ 0);
-
   fib_node_register_type (FIB_NODE_TYPE_VXLAN_TUNNEL, &vxlan_vft);
 
   return 0;
