Warning: This file is not a C or C++ file. It does not have highlighting.

1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef _IP6T_SRH_H
3#define _IP6T_SRH_H
4
5#include <linux/types.h>
6#include <linux/netfilter.h>
7
8/* Values for "mt_flags" field in struct ip6t_srh */
9#define IP6T_SRH_NEXTHDR 0x0001
10#define IP6T_SRH_LEN_EQ 0x0002
11#define IP6T_SRH_LEN_GT 0x0004
12#define IP6T_SRH_LEN_LT 0x0008
13#define IP6T_SRH_SEGS_EQ 0x0010
14#define IP6T_SRH_SEGS_GT 0x0020
15#define IP6T_SRH_SEGS_LT 0x0040
16#define IP6T_SRH_LAST_EQ 0x0080
17#define IP6T_SRH_LAST_GT 0x0100
18#define IP6T_SRH_LAST_LT 0x0200
19#define IP6T_SRH_TAG 0x0400
20#define IP6T_SRH_PSID 0x0800
21#define IP6T_SRH_NSID 0x1000
22#define IP6T_SRH_LSID 0x2000
23#define IP6T_SRH_MASK 0x3FFF
24
25/* Values for "mt_invflags" field in struct ip6t_srh */
26#define IP6T_SRH_INV_NEXTHDR 0x0001
27#define IP6T_SRH_INV_LEN_EQ 0x0002
28#define IP6T_SRH_INV_LEN_GT 0x0004
29#define IP6T_SRH_INV_LEN_LT 0x0008
30#define IP6T_SRH_INV_SEGS_EQ 0x0010
31#define IP6T_SRH_INV_SEGS_GT 0x0020
32#define IP6T_SRH_INV_SEGS_LT 0x0040
33#define IP6T_SRH_INV_LAST_EQ 0x0080
34#define IP6T_SRH_INV_LAST_GT 0x0100
35#define IP6T_SRH_INV_LAST_LT 0x0200
36#define IP6T_SRH_INV_TAG 0x0400
37#define IP6T_SRH_INV_PSID 0x0800
38#define IP6T_SRH_INV_NSID 0x1000
39#define IP6T_SRH_INV_LSID 0x2000
40#define IP6T_SRH_INV_MASK 0x3FFF
41
42/**
43 * struct ip6t_srh - SRH match options
44 * @ next_hdr: Next header field of SRH
45 * @ hdr_len: Extension header length field of SRH
46 * @ segs_left: Segments left field of SRH
47 * @ last_entry: Last entry field of SRH
48 * @ tag: Tag field of SRH
49 * @ mt_flags: match options
50 * @ mt_invflags: Invert the sense of match options
51 */
52
53struct ip6t_srh {
54 __u8 next_hdr;
55 __u8 hdr_len;
56 __u8 segs_left;
57 __u8 last_entry;
58 __u16 tag;
59 __u16 mt_flags;
60 __u16 mt_invflags;
61};
62
63/**
64 * struct ip6t_srh1 - SRH match options (revision 1)
65 * @ next_hdr: Next header field of SRH
66 * @ hdr_len: Extension header length field of SRH
67 * @ segs_left: Segments left field of SRH
68 * @ last_entry: Last entry field of SRH
69 * @ tag: Tag field of SRH
70 * @ psid_addr: Address of previous SID in SRH SID list
71 * @ nsid_addr: Address of NEXT SID in SRH SID list
72 * @ lsid_addr: Address of LAST SID in SRH SID list
73 * @ psid_msk: Mask of previous SID in SRH SID list
74 * @ nsid_msk: Mask of next SID in SRH SID list
75 * @ lsid_msk: MAsk of last SID in SRH SID list
76 * @ mt_flags: match options
77 * @ mt_invflags: Invert the sense of match options
78 */
79
80struct ip6t_srh1 {
81 __u8 next_hdr;
82 __u8 hdr_len;
83 __u8 segs_left;
84 __u8 last_entry;
85 __u16 tag;
86 struct in6_addr psid_addr;
87 struct in6_addr nsid_addr;
88 struct in6_addr lsid_addr;
89 struct in6_addr psid_msk;
90 struct in6_addr nsid_msk;
91 struct in6_addr lsid_msk;
92 __u16 mt_flags;
93 __u16 mt_invflags;
94};
95
96#endif /*_IP6T_SRH_H*/
97

Warning: This file is not a C or C++ file. It does not have highlighting.

source code of linux/include/uapi/linux/netfilter_ipv6/ip6t_srh.h