diff options
author | Lou Berger <lberger@labn.net> | 2022-10-21 22:35:13 +0200 |
---|---|---|
committer | Lou Berger <lberger@labn.net> | 2022-10-25 17:31:44 +0200 |
commit | c706f0e32ba8aa8780a0618b6fbba364c383ae05 (patch) | |
tree | 57ce966e0d581ca7d85c521e3e7c85b9f2e13864 /ospfd/ospf_packet.c | |
parent | topotests: test_ospf_p2mp.py - check for full adjacencies and basic DB info (diff) | |
download | frr-c706f0e32ba8aa8780a0618b6fbba364c383ae05.tar.xz frr-c706f0e32ba8aa8780a0618b6fbba364c383ae05.zip |
ospf: optimization for FRR's P2MP mode
FRR implements a non-standard, but compatible approach for
sending update LSAs (it always send to 224.0.0.5) on P2MP
interfaces. This change makes it so acks are also sent to
224.0.0.5.
Since the acks are multicast, this allows an optimization
where we don't send back out the incoming P2MP interface
immediately allow time to rx multicast ack from neighbors
on the same net that rx'ed the original (multicast) update.
Signed-off-by: Lou Berger <lberger@labn.net>
Diffstat (limited to 'ospfd/ospf_packet.c')
-rw-r--r-- | ospfd/ospf_packet.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index 57643f637..466b5fa2a 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -4220,7 +4220,8 @@ static void ospf_ls_ack_send_list(struct ospf_interface *oi, struct list *ack, op->length = length; /* Decide destination address. */ - if (oi->type == OSPF_IFTYPE_POINTOPOINT) + if (oi->type == OSPF_IFTYPE_POINTOPOINT || + oi->type == OSPF_IFTYPE_POINTOMULTIPOINT) op->dst.s_addr = htonl(OSPF_ALLSPFROUTERS); else op->dst.s_addr = dst.s_addr; |