summaryrefslogtreecommitdiffstats
path: root/vnet/vnet/ip/ip_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'vnet/vnet/ip/ip_init.c')
-rw-r--r--vnet/vnet/ip/ip_init.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/vnet/vnet/ip/ip_init.c b/vnet/vnet/ip/ip_init.c
index c0c1c9560bc..02da6647be3 100644
--- a/vnet/vnet/ip/ip_init.c
+++ b/vnet/vnet/ip/ip_init.c
@@ -140,3 +140,25 @@ do { \
}
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);
+}
+
+
+