aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/vxlan.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/vxlan.h')
-rw-r--r--include/net/vxlan.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/net/vxlan.h b/include/net/vxlan.h
index a0d80736224f..0a7443b49133 100644
--- a/include/net/vxlan.h
+++ b/include/net/vxlan.h
@@ -19,6 +19,14 @@ struct vxlanhdr {
19 19
20/* VXLAN header flags. */ 20/* VXLAN header flags. */
21#define VXLAN_HF_VNI 0x08000000 21#define VXLAN_HF_VNI 0x08000000
22#define VXLAN_HF_RCO 0x00200000
23
24/* Remote checksum offload header option */
25#define VXLAN_RCO_MASK 0x7f /* Last byte of vni field */
26#define VXLAN_RCO_UDP 0x80 /* Indicate UDP RCO (TCP when not set *) */
27#define VXLAN_RCO_SHIFT 1 /* Left shift of start */
28#define VXLAN_RCO_SHIFT_MASK ((1 << VXLAN_RCO_SHIFT) - 1)
29#define VXLAN_MAX_REMCSUM_START (VXLAN_RCO_MASK << VXLAN_RCO_SHIFT)
22 30
23#define VXLAN_N_VID (1u << 24) 31#define VXLAN_N_VID (1u << 24)
24#define VXLAN_VID_MASK (VXLAN_N_VID - 1) 32#define VXLAN_VID_MASK (VXLAN_N_VID - 1)
@@ -38,6 +46,7 @@ struct vxlan_sock {
38 struct hlist_head vni_list[VNI_HASH_SIZE]; 46 struct hlist_head vni_list[VNI_HASH_SIZE];
39 atomic_t refcnt; 47 atomic_t refcnt;
40 struct udp_offload udp_offloads; 48 struct udp_offload udp_offloads;
49 u32 flags;
41}; 50};
42 51
43#define VXLAN_F_LEARN 0x01 52#define VXLAN_F_LEARN 0x01
@@ -49,6 +58,8 @@ struct vxlan_sock {
49#define VXLAN_F_UDP_CSUM 0x40 58#define VXLAN_F_UDP_CSUM 0x40
50#define VXLAN_F_UDP_ZERO_CSUM6_TX 0x80 59#define VXLAN_F_UDP_ZERO_CSUM6_TX 0x80
51#define VXLAN_F_UDP_ZERO_CSUM6_RX 0x100 60#define VXLAN_F_UDP_ZERO_CSUM6_RX 0x100
61#define VXLAN_F_REMCSUM_TX 0x200
62#define VXLAN_F_REMCSUM_RX 0x400
52 63
53struct vxlan_sock *vxlan_sock_add(struct net *net, __be16 port, 64struct vxlan_sock *vxlan_sock_add(struct net *net, __be16 port,
54 vxlan_rcv_t *rcv, void *data, 65 vxlan_rcv_t *rcv, void *data,