]> git.puffer.fish Git - matthieu/frr.git/commit
ospfd: Fix several problems with direct acknowledgments and improved delay acks.
authorAcee Lindem <acee@lindem.com>
Fri, 5 Jul 2024 20:44:30 +0000 (20:44 +0000)
committerAcee Lindem <acee@lindem.com>
Sat, 6 Jul 2024 13:42:40 +0000 (13:42 +0000)
commited480148844259b7e9e30ed92489cdf44085457e
tree6c9ea21915588d4e706f4c578deeb086a1374d95
parente94fc4e6fb885d5b92cbd5b7003f5659a29197c3
ospfd: Fix several problems with direct acknowledgments and improved delay acks.

   1. On P2MP interfaces, direct ack would include the same LSA multiple times
      multiple packets are processed before the OSPF interfae direct LSA
      acknowledgment event is processed. Now duplicates LSA in the same event
      are suppressed.
   2. On non-broadcast interfaces, direct acks for multiple neighbors would be
      unicast to the same neighbor due to the multiple OSPF LS Update packets
      being process prior to the OSPF interface direct ack event. Now, separate
      direct acks are unicast to the neighbors requiring them.
   3. The interface delayed acknowledgment timer runs would run continously
      (every second as long as the interace is up). Now, the timer is set
      when delayed acknowledgments are queued and all queued delayed
      acknowledges are sent when it fires.
   4. For non-broadcast interface delayed acknowledgments, the logic to send
      to multiple neighbors wasn't working because the list was emptied while
      building the packet for the first neighbor.

Signed-off-by: Acee Lindem <acee@lindem.com>
lib/libospf.h
ospfd/ospf_flood.c
ospfd/ospf_flood.h
ospfd/ospf_interface.c
ospfd/ospf_interface.h
ospfd/ospf_ism.c
ospfd/ospf_packet.c
ospfd/ospf_packet.h