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