]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - include/uapi/linux/if_tunnel.h
net: Fix vlan untag for bridge and vlan_dev with reorder_hdr off
[mirror_ubuntu-bionic-kernel.git] / include / uapi / linux / if_tunnel.h
CommitLineData
6f52b16c 1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
607ca46e
DH
2#ifndef _UAPI_IF_TUNNEL_H_
3#define _UAPI_IF_TUNNEL_H_
4
5#include <linux/types.h>
1fe8e0f0
MR
6#include <linux/if.h>
7#include <linux/ip.h>
8#include <linux/in6.h>
607ca46e
DH
9#include <asm/byteorder.h>
10
11
12#define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0)
13#define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1)
14#define SIOCDELTUNNEL (SIOCDEVPRIVATE + 2)
15#define SIOCCHGTUNNEL (SIOCDEVPRIVATE + 3)
16#define SIOCGETPRL (SIOCDEVPRIVATE + 4)
17#define SIOCADDPRL (SIOCDEVPRIVATE + 5)
18#define SIOCDELPRL (SIOCDEVPRIVATE + 6)
19#define SIOCCHGPRL (SIOCDEVPRIVATE + 7)
20#define SIOCGET6RD (SIOCDEVPRIVATE + 8)
21#define SIOCADD6RD (SIOCDEVPRIVATE + 9)
22#define SIOCDEL6RD (SIOCDEVPRIVATE + 10)
23#define SIOCCHG6RD (SIOCDEVPRIVATE + 11)
24
25#define GRE_CSUM __cpu_to_be16(0x8000)
26#define GRE_ROUTING __cpu_to_be16(0x4000)
27#define GRE_KEY __cpu_to_be16(0x2000)
28#define GRE_SEQ __cpu_to_be16(0x1000)
29#define GRE_STRICT __cpu_to_be16(0x0800)
30#define GRE_REC __cpu_to_be16(0x0700)
ab10dccb
GF
31#define GRE_ACK __cpu_to_be16(0x0080)
32#define GRE_FLAGS __cpu_to_be16(0x0078)
607ca46e
DH
33#define GRE_VERSION __cpu_to_be16(0x0007)
34
03459345
GF
35#define GRE_IS_CSUM(f) ((f) & GRE_CSUM)
36#define GRE_IS_ROUTING(f) ((f) & GRE_ROUTING)
37#define GRE_IS_KEY(f) ((f) & GRE_KEY)
38#define GRE_IS_SEQ(f) ((f) & GRE_SEQ)
39#define GRE_IS_STRICT(f) ((f) & GRE_STRICT)
40#define GRE_IS_REC(f) ((f) & GRE_REC)
41#define GRE_IS_ACK(f) ((f) & GRE_ACK)
42
ecc6569f 43#define GRE_VERSION_0 __cpu_to_be16(0x0000)
03459345
GF
44#define GRE_VERSION_1 __cpu_to_be16(0x0001)
45#define GRE_PROTO_PPP __cpu_to_be16(0x880b)
ab10dccb
GF
46#define GRE_PPTP_KEY_MASK __cpu_to_be32(0xffff)
47
607ca46e
DH
48struct ip_tunnel_parm {
49 char name[IFNAMSIZ];
50 int link;
51 __be16 i_flags;
52 __be16 o_flags;
53 __be32 i_key;
54 __be32 o_key;
55 struct iphdr iph;
56};
57
0974658d
ND
58enum {
59 IFLA_IPTUN_UNSPEC,
60 IFLA_IPTUN_LINK,
61 IFLA_IPTUN_LOCAL,
62 IFLA_IPTUN_REMOTE,
63 IFLA_IPTUN_TTL,
64 IFLA_IPTUN_TOS,
c075b130
ND
65 IFLA_IPTUN_ENCAP_LIMIT,
66 IFLA_IPTUN_FLOWINFO,
67 IFLA_IPTUN_FLAGS,
cfa323b6 68 IFLA_IPTUN_PROTO,
befe2aa1 69 IFLA_IPTUN_PMTUDISC,
e2f1f072
ND
70 IFLA_IPTUN_6RD_PREFIX,
71 IFLA_IPTUN_6RD_RELAY_PREFIX,
72 IFLA_IPTUN_6RD_PREFIXLEN,
73 IFLA_IPTUN_6RD_RELAY_PREFIXLEN,
56328486
TH
74 IFLA_IPTUN_ENCAP_TYPE,
75 IFLA_IPTUN_ENCAP_FLAGS,
76 IFLA_IPTUN_ENCAP_SPORT,
77 IFLA_IPTUN_ENCAP_DPORT,
cfc7381b 78 IFLA_IPTUN_COLLECT_METADATA,
0a473b82 79 IFLA_IPTUN_FWMARK,
55ff02b2
JV
80
81 __IFLA_IPTUN_VENDOR_BREAK, /* Ensure new entries do not hit the below. */
82 IFLA_IPTUN_FAN_MAP = 33,
83
0974658d
ND
84 __IFLA_IPTUN_MAX,
85};
86#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
87
56328486
TH
88enum tunnel_encap_types {
89 TUNNEL_ENCAP_NONE,
90 TUNNEL_ENCAP_FOU,
bc1fc390 91 TUNNEL_ENCAP_GUE,
bdc47641 92 TUNNEL_ENCAP_MPLS,
56328486
TH
93};
94
95#define TUNNEL_ENCAP_FLAG_CSUM (1<<0)
96#define TUNNEL_ENCAP_FLAG_CSUM6 (1<<1)
b17f709a 97#define TUNNEL_ENCAP_FLAG_REMCSUM (1<<2)
56328486 98
607ca46e
DH
99/* SIT-mode i_flags */
100#define SIT_ISATAP 0x0001
101
102struct ip_tunnel_prl {
103 __be32 addr;
104 __u16 flags;
105 __u16 __reserved;
106 __u32 datalen;
107 __u32 __reserved2;
108 /* data follows */
109};
110
111/* PRL flags */
112#define PRL_DEFAULT 0x0001
113
114struct ip_tunnel_6rd {
115 struct in6_addr prefix;
116 __be32 relay_prefix;
117 __u16 prefixlen;
118 __u16 relay_prefixlen;
119};
120
121enum {
122 IFLA_GRE_UNSPEC,
123 IFLA_GRE_LINK,
124 IFLA_GRE_IFLAGS,
125 IFLA_GRE_OFLAGS,
126 IFLA_GRE_IKEY,
127 IFLA_GRE_OKEY,
128 IFLA_GRE_LOCAL,
129 IFLA_GRE_REMOTE,
130 IFLA_GRE_TTL,
131 IFLA_GRE_TOS,
132 IFLA_GRE_PMTUDISC,
133 IFLA_GRE_ENCAP_LIMIT,
134 IFLA_GRE_FLOWINFO,
135 IFLA_GRE_FLAGS,
4565e991
TH
136 IFLA_GRE_ENCAP_TYPE,
137 IFLA_GRE_ENCAP_FLAGS,
138 IFLA_GRE_ENCAP_SPORT,
139 IFLA_GRE_ENCAP_DPORT,
2e15ea39 140 IFLA_GRE_COLLECT_METADATA,
22a59be8 141 IFLA_GRE_IGNORE_DF,
0a473b82 142 IFLA_GRE_FWMARK,
84e54fe0 143 IFLA_GRE_ERSPAN_INDEX,
607ca46e
DH
144 __IFLA_GRE_MAX,
145};
146
147#define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1)
148
149/* VTI-mode i_flags */
efd0f11d 150#define VTI_ISVTI ((__force __be16)0x0001)
607ca46e
DH
151
152enum {
153 IFLA_VTI_UNSPEC,
154 IFLA_VTI_LINK,
155 IFLA_VTI_IKEY,
156 IFLA_VTI_OKEY,
157 IFLA_VTI_LOCAL,
158 IFLA_VTI_REMOTE,
0a473b82 159 IFLA_VTI_FWMARK,
607ca46e
DH
160 __IFLA_VTI_MAX,
161};
162
163#define IFLA_VTI_MAX (__IFLA_VTI_MAX - 1)
55ff02b2
JV
164
165enum {
166 IFLA_FAN_UNSPEC,
167 IFLA_FAN_MAPPING,
168 __IFLA_FAN_MAX,
169};
170
171#define IFLA_FAN_MAX (__IFLA_FAN_MAX - 1)
172
d57420a1 173struct ifla_fan_map {
55ff02b2
JV
174 __be32 underlay;
175 __be32 overlay;
176 __u16 underlay_prefix;
177 __u16 overlay_prefix;
178};
179
607ca46e 180#endif /* _UAPI_IF_TUNNEL_H_ */