1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _IP6T_RT_H 3 #define _IP6T_RT_H 4 5 #include <linux/types.h> 6 #include <linux/in6.h> 7 8 #define IP6T_RT_HOPS 16 9 10 struct ip6t_rt { 11 __u32 rt_type; /* Routing Type */ 12 __u32 segsleft[2]; /* Segments Left */ 13 __u32 hdrlen; /* Header Length */ 14 __u8 flags; /* */ 15 __u8 invflags; /* Inverse flags */ 16 struct in6_addr addrs[IP6T_RT_HOPS]; /* Hops */ 17 __u8 addrnr; /* Nr of Addresses */ 18 }; 19 20 #define IP6T_RT_TYP 0x01 21 #define IP6T_RT_SGS 0x02 22 #define IP6T_RT_LEN 0x04 23 #define IP6T_RT_RES 0x08 24 #define IP6T_RT_FST_MASK 0x30 25 #define IP6T_RT_FST 0x10 26 #define IP6T_RT_FST_NSTRICT 0x20 27 28 /* Values for "invflags" field in struct ip6t_rt. */ 29 #define IP6T_RT_INV_TYP 0x01 /* Invert the sense of type. */ 30 #define IP6T_RT_INV_SGS 0x02 /* Invert the sense of Segments. */ 31 #define IP6T_RT_INV_LEN 0x04 /* Invert the sense of length. */ 32 #define IP6T_RT_INV_MASK 0x07 /* All possible flags. */ 33 34 #endif /*_IP6T_RT_H*/ 35