]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
OSPF: Send direct acknowledgements as unicast
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Sun, 3 Feb 2019 19:22:40 +0000 (20:22 +0100)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Sun, 3 Feb 2019 19:22:40 +0000 (20:22 +0100)
Direct acknowledgements should be send as unicast to a corresponding
neighbor. Only delayed acks should be send as multicast to all/designated
routers.

proto/ospf/lsack.c

index 251b5e47c6ff077f2496cd91db7b9b698bc6c224..9198dd9296cd2f3ef6a126ab43cc58256b30f199 100644 (file)
@@ -106,6 +106,13 @@ ospf_send_lsack_(struct ospf_proto *p, struct ospf_neighbor *n, int queue)
   length = ospf_pkt_hdrlen(p) + i * sizeof(struct ospf_lsa_header);
   pkt->length = htons(length);
 
+  if (queue == ACKL_DIRECT)
+  {
+    OSPF_PACKET(ospf_dump_lsack, pkt, "LSACK packet sent to nbr %R on %s", n->rid, ifa->ifname);
+    ospf_send_to(ifa, n->ip);
+    return;
+  }
+
   OSPF_PACKET(ospf_dump_lsack, pkt, "LSACK packet sent via %s", ifa->ifname);
 
   if (ifa->type == OSPF_IT_BCAST)