Skip to content

Commit

Permalink
ospfd: An OSPF Ack should be sent when P2MP reflooding is delayed.
Browse files Browse the repository at this point in the history
When "ip ospf network point-to-multipoint delayed-reflooding" is configured,
LSAs received on an OSPF P2MP network are not reflooded. Since LSA reflooding
would normally serve as an implied LSA acknowledgment, an explicit OSPF ack
should be sent to avoid retransmission by the neighbor which orginally flooded
the LSA on the P2MP network.

Signed-off-by: Acee Lindem <acee@lindem.com>
  • Loading branch information
aceelindem committed Sep 12, 2024
1 parent 571cca2 commit d1e8903
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions ospfd/ospf_flood.c
Original file line number Diff line number Diff line change
Expand Up @@ -797,7 +797,7 @@ int ospf_flood_through_interface(struct ospf_interface *oi,
ospf_ls_upd_send_lsa(nbr, lsa,
OSPF_SEND_PACKET_DIRECT);
}
} else
} else {
/* If P2MP delayed reflooding is configured and the LSA was
received from a neighbor on the P2MP interface, do not flood
if back out on the interface. The LSA will be retransmitted
Expand All @@ -815,9 +815,17 @@ int ospf_flood_through_interface(struct ospf_interface *oi,
inbr ? &(inbr->router_id)
: &(oi->ospf->router_id),
IF_NAME(oi));
} else
ospf_ls_upd_send_lsa(oi->nbr_self, lsa,
OSPF_SEND_PACKET_INDIRECT);
/*
* If reflooding is delayed, a delayed acknowledge
* should be sent since the LSA will not be immediately
* reflooded and interpreted as an implied
* acknowledgment by the sender.
*/
return 1;
}
ospf_ls_upd_send_lsa(oi->nbr_self, lsa,
OSPF_SEND_PACKET_INDIRECT);
}

return 0;
}
Expand Down

0 comments on commit d1e8903

Please sign in to comment.