summaryrefslogtreecommitdiff
path: root/ospfd/ospf_flood.c
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2022-10-27 07:26:35 +0100
committerGitHub <noreply@github.com>2022-10-27 07:26:35 +0100
commit2ab7bfffde9657d658afbd31f36161b9b453d84a (patch)
treee107e1951b850d678ca045923f82d62fdad90547 /ospfd/ospf_flood.c
parent7d92ea97e216141b28a9a15098929010666ef202 (diff)
parent74fc2957ce09a7128dd036ecd19c38c5f4adf1b9 (diff)
Merge pull request #12206 from FRRouting/mergify/bp/dev/8.4/pr-12179
ospf: optimization for FRR's P2MP mode (backport #12179)
Diffstat (limited to 'ospfd/ospf_flood.c')
-rw-r--r--ospfd/ospf_flood.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c
index e686a93ba9..c2af09a679 100644
--- a/ospfd/ospf_flood.c
+++ b/ospfd/ospf_flood.c
@@ -648,6 +648,13 @@ int ospf_flood_through_interface(struct ospf_interface *oi,
OSPF_SEND_PACKET_DIRECT);
}
} else
+ /* Optimization: for P2MP interfaces,
+ don't send back out the incoming interface immediately,
+ allow time to rx multicast ack to the rx'ed (multicast)
+ update */
+ if (retx_flag != 1 ||
+ oi->type != OSPF_IFTYPE_POINTOMULTIPOINT || inbr == NULL ||
+ oi != inbr->oi)
ospf_ls_upd_send_lsa(oi->nbr_self, lsa,
OSPF_SEND_PACKET_INDIRECT);