diff options
author | John Lo <loj@cisco.com> | 2016-04-12 18:20:39 -0400 |
---|---|---|
committer | Gerrit Code Review <gerrit@fd.io> | 2016-04-14 23:06:54 +0000 |
commit | d1f5d047988655a001655357f1ce35152161bedf (patch) | |
tree | d2a3f442190a352e8ed8cbfab7fefbf58e994133 /vnet/vnet/interface_output.c | |
parent | e10e372e5a7a1be385e77a8062a2573eb58b29d8 (diff) |
Change ARP and IP6-ND nodes to use interface-output node for output
The current mechanism for setting up arp-input and ip6-discover-neighbor
output nodes for interfaces using their interface link up/down callback
function is inefficient and has potential timing issue, as observed for
bonded interface. Now both nodes will setup output interface sw_if_index
in the the sw_if_index[VLIB_TX] field of current packet buffer and then
use the interface-ouput node to tx the packet.
One side effect is that vlib_node_add_next_with_slot() needs to be
modified to allow the same output node-id to be put at the specified
slot, even if another slot contain that same node-id already exist. This
requirement is caused by BVI support where all loopback interfaces set
up as BVIs will have the same output node-id being l2-input while, for
output-interface node, the output slot must match the hw_if_index of the
interface.
Change-Id: I18bd1d4fe9bea047018796f7b8a4d4c20ee31d6e
Signed-off-by: John Lo <loj@cisco.com>
Diffstat (limited to 'vnet/vnet/interface_output.c')
-rw-r--r-- | vnet/vnet/interface_output.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/vnet/vnet/interface_output.c b/vnet/vnet/interface_output.c index 84dc0392a51..033e9fc44b3 100644 --- a/vnet/vnet/interface_output.c +++ b/vnet/vnet/interface_output.c @@ -1147,11 +1147,6 @@ VLIB_REGISTER_NODE (punt_buffers,static) = { .validate_frame = validate_error_frame, }; -static clib_error_t * -vnet_per_buffer_interface_output_hw_interface_add_del (vnet_main_t * vnm, - u32 hw_if_index, - u32 is_create); - VLIB_REGISTER_NODE (vnet_per_buffer_interface_output_node,static) = { .function = vnet_per_buffer_interface_output, .name = "interface-output", |