diff options
Diffstat (limited to 'vnet/vnet/ip/ip_init.c')
-rw-r--r-- | vnet/vnet/ip/ip_init.c | 22 |
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); +} + + + |