diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2019-02-03 20:22:40 +0100 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2019-02-03 20:22:40 +0100 |
commit | a9b97cbcb74d918f3f606eb87a506712dccd2832 (patch) | |
tree | c2701020ad82a516b7b6ff25a3c629ea243e7e83 /proto/ospf/lsack.c | |
parent | 16605f2fdad730b8bb570e17192dc5f45cf15d3f (diff) |
OSPF: Send direct acknowledgements as unicast
Direct acknowledgements should be send as unicast to a corresponding
neighbor. Only delayed acks should be send as multicast to all/designated
routers.
Diffstat (limited to 'proto/ospf/lsack.c')
-rw-r--r-- | proto/ospf/lsack.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/proto/ospf/lsack.c b/proto/ospf/lsack.c index 251b5e47..9198dd92 100644 --- a/proto/ospf/lsack.c +++ b/proto/ospf/lsack.c @@ -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) |