From 6f6311560380d0e992f710558e213df1b098ef94 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Tue, 3 Oct 2017 08:20:21 -0700 Subject: Distributed Virtual Router Support A distributed virtual router works by attmpeting to switch a packet, but on failing to find a local consumer (i.e. the packet is destined to a locally attached host) then the packet is sent unmodified 'upstream' to where the rest of the 'distributed' router is present. When L3 switching a packet this means the L2 header must not be modifed. This patch adds a 'l2-bridge' object to the L3 FIB which re-injects packets from the L3 path back into the L2 path - use with extreme caution. Change-Id: I069724eb45956647d7980cbe40a80a788ee6ee82 Signed-off-by: Neale Ranns --- src/vnet/fib/fib_table.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/vnet/fib/fib_table.c') diff --git a/src/vnet/fib/fib_table.c b/src/vnet/fib/fib_table.c index 6daa61c2612..d5625d83673 100644 --- a/src/vnet/fib/fib_table.c +++ b/src/vnet/fib/fib_table.c @@ -481,7 +481,8 @@ fib_table_route_path_fixup (const fib_prefix_t *prefix, } if (fib_prefix_is_host(prefix) && ip46_address_is_zero(&path->frp_addr) && - path->frp_sw_if_index != ~0) + path->frp_sw_if_index != ~0 && + path->frp_proto != DPO_PROTO_ETHERNET) { path->frp_addr = prefix->fp_addr; path->frp_flags |= FIB_ROUTE_PATH_ATTACHED; -- cgit 1.2.3-korg