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