Linux-libre 5.4.47-gnu
[librecmc/linux-libre.git] / include / uapi / linux / netfilter_ipv6 / ip6t_rt.h
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*/