[PATCH nft] exthdr: incomplete type 2 routing header definition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Add missing type 2 routing header definition.

Listing is not correct because these IPv6 extension header are still
lacking context to properly delinearize the listing, but at least this
does not crash.

Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
---
 src/exthdr.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/exthdr.c b/src/exthdr.c
index 60c7cd1e67f6..1438d7e2d2dc 100644
--- a/src/exthdr.c
+++ b/src/exthdr.c
@@ -450,13 +450,23 @@ const struct exthdr_desc exthdr_hbh = {
  * Routing header
  */
 
+/* similar to uapi/linux/ipv6.h */
+struct ip6_rt2_hdr {
+	struct ip6_rthdr	rt_hdr;
+	uint32_t		reserved;
+	struct in6_addr		addr;
+};
+
+#define RT2_FIELD(__name, __member, __dtype) \
+	HDR_TEMPLATE(__name, __dtype, struct ip6_rt2_hdr, __member)
+
 const struct exthdr_desc exthdr_rt2 = {
 	.name           = "rt2",
 	.id		= EXTHDR_DESC_RT2,
 	.type           = IPPROTO_ROUTING,
 	.templates	= {
-		[RT2HDR_RESERVED]	= {},
-		[RT2HDR_ADDR]		= {},
+		[RT2HDR_RESERVED]	= RT2_FIELD("reserved", reserved, &integer_type),
+		[RT2HDR_ADDR]		= RT2_FIELD("addr", addr, &ip6addr_type),
 	},
 };
 
-- 
2.30.2





[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux