X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip4_forward.c;h=43213fe8ace6d58b5bd23269529406f5e212d750;hb=b538dd868;hp=d8eed67a3812c8a91bb5084975f63fcba89c042a;hpb=b19bf8de1577612d26ead0a0c6ffb5ee2227172f;p=vpp.git diff --git a/src/vnet/ip/ip4_forward.c b/src/vnet/ip/ip4_forward.c index d8eed67a381..43213fe8ace 100644 --- a/src/vnet/ip/ip4_forward.c +++ b/src/vnet/ip/ip4_forward.c @@ -515,6 +515,12 @@ ip4_sw_interface_enable_disable (u32 sw_if_index, u32 is_enable) vnet_feature_enable_disable ("ip4-multicast", "ip4-not-enabled", sw_if_index, !is_enable, 0, 0); + + { + ip4_enable_disable_interface_callback_t *cb; + vec_foreach (cb, im->enable_disable_interface_callbacks) + cb->function (im, cb->function_opaque, sw_if_index, is_enable); + } } static clib_error_t * @@ -1673,6 +1679,16 @@ ip4_register_protocol (u32 protocol, u32 node_index) lm->local_next_by_ip_protocol[protocol] = vlib_node_add_next (vm, ip4_local_node.index, node_index); } + +void +ip4_unregister_protocol (u32 protocol) +{ + ip4_main_t *im = &ip4_main; + ip_lookup_main_t *lm = &im->lookup_main; + + ASSERT (protocol < ARRAY_LEN (lm->local_next_by_ip_protocol)); + lm->local_next_by_ip_protocol[protocol] = IP_LOCAL_NEXT_PUNT; +} #endif static clib_error_t * @@ -1691,8 +1707,8 @@ show_ip_local_command_fn (vlib_main_t * vm, u32 node_index = vlib_get_node (vm, ip4_local_node.index)-> next_nodes[lm->local_next_by_ip_protocol[i]]; - vlib_cli_output (vm, "%d: %U", i, format_vlib_node_name, vm, - node_index); + vlib_cli_output (vm, "%U: %U", format_ip_protocol, i, + format_vlib_node_name, vm, node_index); } } return 0;