1 /* SPDX-License-Identifier: GPL-2.0 */
3 #define __NET_GENEVE_H 1
5 #include <net/udp_tunnel.h>
7 #define GENEVE_UDP_PORT 6081
10 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
11 * |Ver| Opt Len |O|C| Rsvd. | Protocol Type |
12 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
13 * | Virtual Network Identifier (VNI) | Reserved |
14 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
15 * | Variable Length Options |
16 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
19 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 * | Option Class | Type |R|R|R| Length |
21 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
22 * | Variable Option Data |
23 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
29 #ifdef __LITTLE_ENDIAN_BITFIELD
43 #define GENEVE_CRIT_OPT_TYPE (1 << 7)
46 #ifdef __LITTLE_ENDIAN_BITFIELD
62 struct geneve_opt options[];
65 static inline bool netif_is_geneve(const struct net_device *dev)
67 return dev->rtnl_link_ops &&
68 !strcmp(dev->rtnl_link_ops->kind, "geneve");
72 struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
73 u8 name_assign_type, u16 dst_port);
74 #endif /*ifdef CONFIG_INET */
76 #endif /*ifdef__NET_GENEVE_H */