diff options
author | AbdAlRahman Gad <abdobngad@gmail.com> | 2024-08-12 22:33:38 +0300 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2024-08-13 19:46:16 +0200 |
commit | c16141eda5e8473a11ffbca82e1d6142d463300c (patch) | |
tree | 182a5a3d1851b6368e666d8a1186c55ec75c1676 /tap.c | |
parent | f6d5a52392645f9b52c1b969ea2e85762626c5ba (diff) | |
download | passt-c16141eda5e8473a11ffbca82e1d6142d463300c.tar passt-c16141eda5e8473a11ffbca82e1d6142d463300c.tar.gz passt-c16141eda5e8473a11ffbca82e1d6142d463300c.tar.bz2 passt-c16141eda5e8473a11ffbca82e1d6142d463300c.tar.lz passt-c16141eda5e8473a11ffbca82e1d6142d463300c.tar.xz passt-c16141eda5e8473a11ffbca82e1d6142d463300c.tar.zst passt-c16141eda5e8473a11ffbca82e1d6142d463300c.zip |
ndp.c: Turn NDP responder into more declarative implementation
- Add structs for NA, RA, NS, MTU, prefix info, option header,
link-layer address, RDNSS, DNSSL and link-layer for RA message.
- Turn NA message from purely imperative, going byte by byte,
to declarative by filling it's struct.
- Turn part of RA message into declarative.
- Move packet_add() to be before the call of ndp() in tap6_handler()
if the protocol of the packet is ICMPv6.
- Add a pool of packets as an additional parameter to ndp().
- Check the size of NS packet with packet_get() before sending an NA
packet.
- Add documentation for the structs.
- Add an enum for NDP option types.
Link: https://bugs.passt.top/show_bug.cgi?id=21
Signed-off-by: AbdAlRahman Gad <abdobngad@gmail.com>
[sbrivio: Minor coding style fixes]
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'tap.c')
-rw-r--r-- | tap.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -808,12 +808,13 @@ resume: if (l4len < sizeof(struct icmp6hdr)) continue; - if (ndp(c, (struct icmp6hdr *)l4h, saddr)) + packet_add(pkt, l4len, l4h); + + if (ndp(c, (struct icmp6hdr *)l4h, saddr, pkt)) continue; tap_packet_debug(NULL, ip6h, NULL, proto, NULL, 1); - packet_add(pkt, l4len, l4h); icmp_tap_handler(c, PIF_TAP, AF_INET6, saddr, daddr, pkt, now); continue; |