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