From c16141eda5e8473a11ffbca82e1d6142d463300c Mon Sep 17 00:00:00 2001 From: AbdAlRahman Gad Date: Mon, 12 Aug 2024 22:33:38 +0300 Subject: 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 [sbrivio: Minor coding style fixes] Signed-off-by: Stefano Brivio --- ndp.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ndp.h') diff --git a/ndp.h b/ndp.h index b33cd69..a786441 100644 --- a/ndp.h +++ b/ndp.h @@ -6,6 +6,7 @@ #ifndef NDP_H #define NDP_H -int ndp(struct ctx *c, const struct icmp6hdr *ih, const struct in6_addr *saddr); +int ndp(struct ctx *c, const struct icmp6hdr *ih, const struct in6_addr *saddr, + const struct pool *p); #endif /* NDP_H */ -- cgit v1.2.3