1 #ifndef _IP6T_RT_H
2 #define _IP6T_RT_H
3 
4 /*#include <linux/in6.h>*/
5 
6 #define IP6T_RT_HOPS 16
7 
8 struct ip6t_rt
9 {
10 	u_int32_t rt_type;			/* Routing Type */
11 	u_int32_t segsleft[2];			/* Segments Left */
12 	u_int32_t hdrlen;			/* Header Length */
13 	u_int8_t  flags;			/*  */
14 	u_int8_t  invflags;			/* Inverse flags */
15 	struct in6_addr addrs[IP6T_RT_HOPS];	/* Hops */
16 	u_int8_t addrnr;			/* Nr of Addresses */
17 };
18 
19 #define IP6T_RT_TYP 		0x01
20 #define IP6T_RT_SGS 		0x02
21 #define IP6T_RT_LEN 		0x04
22 #define IP6T_RT_RES 		0x08
23 #define IP6T_RT_FST_MASK	0x30
24 #define IP6T_RT_FST 		0x10
25 #define IP6T_RT_FST_NSTRICT	0x20
26 
27 /* Values for "invflags" field in struct ip6t_rt. */
28 #define IP6T_RT_INV_TYP		0x01	/* Invert the sense of type. */
29 #define IP6T_RT_INV_SGS		0x02	/* Invert the sense of Segments. */
30 #define IP6T_RT_INV_LEN		0x04	/* Invert the sense of length. */
31 #define IP6T_RT_INV_MASK	0x07	/* All possible flags. */
32 
33 #define MASK_HOPOPTS    128
34 #define MASK_DSTOPTS    64
35 #define MASK_ROUTING    32
36 #define MASK_FRAGMENT   16
37 #define MASK_AH         8
38 #define MASK_ESP        4
39 #define MASK_NONE       2
40 #define MASK_PROTO      1
41 
42 #endif /*_IP6T_RT_H*/
43