fd closed twice
[vpp.git] / vnet / vnet / ip / ip_init.c
index b6b2ea1..02da664 100644 (file)
@@ -121,9 +121,6 @@ do {                                                \
   if ((error = vlib_call_init_function (vm, ip6_hop_by_hop_init)))
     return error;
 
-  if ((error = vlib_call_init_function (vm, ip4_hop_by_hop_init)))
-    return error;
-
   if ((error = vlib_call_init_function (vm, udp_local_init)))
     return error;
 
@@ -136,7 +133,32 @@ do {                                               \
   if ((error = vlib_call_init_function (vm, input_acl_init)))
     return error;
 
+  if ((error = vlib_call_init_function (vm, policer_classify_init)))
+    return error;
+
   return error;
 }
 
 VLIB_INIT_FUNCTION (ip_main_init);
+
+void
+vnet_config_update_tx_feature_count (ip_lookup_main_t * lm, 
+                                     ip_config_main_t * tx_cm, 
+                                     u32 sw_if_index, 
+                                     int is_add)
+{
+  ASSERT (tx_cm == &lm->feature_config_mains[VNET_IP_TX_FEAT]);
+
+  vec_validate (lm->tx_feature_count_by_sw_if_index, sw_if_index);
+
+  lm->tx_feature_count_by_sw_if_index[sw_if_index] += is_add ? 1 : -1;
+
+  ASSERT (lm->tx_feature_count_by_sw_if_index[sw_if_index] >= 0);
+
+  lm->tx_sw_if_has_ip_output_features =
+    clib_bitmap_set (lm->tx_sw_if_has_ip_output_features, sw_if_index,
+                     lm->tx_feature_count_by_sw_if_index[sw_if_index] > 0);
+}
+
+
+