1248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#ifndef _IP6T_RT_H
2248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define _IP6T_RT_H
3248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy
4dbe77cc974cee656eae37e75039dd1a410a4535bJan Engelhardt#include <linux/types.h>
5248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy/*#include <linux/in6.h>*/
6248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy
7248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_HOPS 16
8248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy
9350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtstruct ip6t_rt {
10dbe77cc974cee656eae37e75039dd1a410a4535bJan Engelhardt	__u32 rt_type;			/* Routing Type */
11dbe77cc974cee656eae37e75039dd1a410a4535bJan Engelhardt	__u32 segsleft[2];			/* Segments Left */
12dbe77cc974cee656eae37e75039dd1a410a4535bJan Engelhardt	__u32 hdrlen;			/* Header Length */
13dbe77cc974cee656eae37e75039dd1a410a4535bJan Engelhardt	__u8  flags;			/*  */
14dbe77cc974cee656eae37e75039dd1a410a4535bJan Engelhardt	__u8  invflags;			/* Inverse flags */
15248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy	struct in6_addr addrs[IP6T_RT_HOPS];	/* Hops */
16dbe77cc974cee656eae37e75039dd1a410a4535bJan Engelhardt	__u8 addrnr;			/* Nr of Addresses */
17248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy};
18248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy
19248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_TYP 		0x01
20248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_SGS 		0x02
21248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_LEN 		0x04
22248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_RES 		0x08
23248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_FST_MASK	0x30
24248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_FST 		0x10
25248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_FST_NSTRICT	0x20
26248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy
27248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy/* Values for "invflags" field in struct ip6t_rt. */
28248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_INV_TYP		0x01	/* Invert the sense of type. */
29248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_INV_SGS		0x02	/* Invert the sense of Segments. */
30248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_INV_LEN		0x04	/* Invert the sense of length. */
31248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#define IP6T_RT_INV_MASK	0x07	/* All possible flags. */
32248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy
33248a109b3bf6c9a0b3724f3123ad64a624d30631Patrick McHardy#endif /*_IP6T_RT_H*/
34