diff options
-rw-r--r-- | src/vnet/interface_output.c | 6 | ||||
-rw-r--r-- | src/vnet/ipsec/ipsec_if.c | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/vnet/interface_output.c b/src/vnet/interface_output.c index 563f6149708..fe029b865fa 100644 --- a/src/vnet/interface_output.c +++ b/src/vnet/interface_output.c @@ -1089,6 +1089,12 @@ VNET_FEATURE_INIT (span_tx, static) = { .runs_before = VNET_FEATURES ("interface-tx"), }; +VNET_FEATURE_INIT (ipsec_if_tx, static) = { + .arc_name = "interface-output", + .node_name = "ipsec-if-output", + .runs_before = VNET_FEATURES ("interface-tx"), +}; + VNET_FEATURE_INIT (interface_tx, static) = { .arc_name = "interface-output", .node_name = "interface-tx", diff --git a/src/vnet/ipsec/ipsec_if.c b/src/vnet/ipsec/ipsec_if.c index 0a080819523..852b142717f 100644 --- a/src/vnet/ipsec/ipsec_if.c +++ b/src/vnet/ipsec/ipsec_if.c @@ -242,6 +242,9 @@ ipsec_add_del_tunnel_if_internal (vnet_main_t * vnm, hi->output_node_index = ipsec_if_output_node.index; t->hw_if_index = hw_if_index; + vnet_feature_enable_disable ("interface-output", "ipsec-if-output", + hi->sw_if_index, 1, 0, 0); + /*1st interface, register protocol */ if (pool_elts (im->tunnel_interfaces) == 1) ip4_register_protocol (IP_PROTOCOL_IPSEC_ESP, @@ -259,6 +262,10 @@ ipsec_add_del_tunnel_if_internal (vnet_main_t * vnm, t = pool_elt_at_index (im->tunnel_interfaces, p[0]); hi = vnet_get_hw_interface (vnm, t->hw_if_index); vnet_sw_interface_set_flags (vnm, hi->sw_if_index, 0); /* admin down */ + + vnet_feature_enable_disable ("interface-output", "ipsec-if-output", + hi->sw_if_index, 0, 0, 0); + vec_add1 (im->free_tunnel_if_indices, t->hw_if_index); vnet_interface_counter_lock (vim); |