aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2019-10-07 22:44:54 -0700
committerAndrew Yourtchenko <ayourtch@gmail.com>2019-10-22 11:13:06 +0000
commit15800e94423623ef574a1cde70f4fd0e34a1f95b (patch)
tree19c14686508053ee5ae5c7366d487561ef5cccb5 /src
parent3bc9d5551a43984a9409c47f0e3c5299d894472e (diff)
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 <nranns@cisco.com> (cherry picked from commit da0e7497ca972f3219352d884b5c51e455503dbb)
Diffstat (limited to 'src')
-rw-r--r--src/vnet/fib/fib_path.c21
1 files changed, 18 insertions, 3 deletions
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);