From da0e7497ca972f3219352d884b5c51e455503dbb Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Mon, 7 Oct 2019 22:44:54 -0700 Subject: fib: P2P interfaces do not need specific multicast adjacencies they can use the 'auto' adj for all traffic Type: fix Change-Id: Id2b9557683252a94badc8f9dfab5f7b2ae26f1ee Signed-off-by: Neale Ranns --- src/vnet/fib/fib_path.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'src/vnet/fib/fib_path.c') diff --git a/src/vnet/fib/fib_path.c b/src/vnet/fib/fib_path.c index 17aa77feee8..60ba92bf6cc 100644 --- a/src/vnet/fib/fib_path.c +++ b/src/vnet/fib/fib_path.c @@ -2571,9 +2571,24 @@ fib_path_contribute_forwarding (fib_node_index_t path_index, /* * Create the adj needed for sending IP multicast traffic */ - ai = adj_mcast_add_or_lock(dpo_proto_to_fib(path->fp_nh_proto), - fib_forw_chain_type_to_link_type(fct), - path->attached.fp_interface); + if (vnet_sw_interface_is_p2p(vnet_get_main(), + path->attached.fp_interface)) + { + /* + * point-2-point interfaces do not require a glean, since + * there is nothing to ARP. Install a rewrite/nbr adj instead + */ + ai = adj_nbr_add_or_lock(dpo_proto_to_fib(path->fp_nh_proto), + fib_forw_chain_type_to_link_type(fct), + &zero_addr, + path->attached.fp_interface); + } + else + { + ai = adj_mcast_add_or_lock(dpo_proto_to_fib(path->fp_nh_proto), + fib_forw_chain_type_to_link_type(fct), + path->attached.fp_interface); + } dpo_set(dpo, DPO_ADJACENCY, fib_forw_chain_type_to_dpo_proto(fct), ai); -- cgit 1.2.3-korg