1 #ifndef __NET_GENEVE_WRAPPER_H
2 #define __NET_GENEVE_WRAPPER_H 1
5 #include <net/udp_tunnel.h>
9 #ifdef USE_UPSTREAM_TUNNEL
10 #include_next <net/geneve.h>
12 static inline int rpl_geneve_init_module(void)
16 static inline void rpl_geneve_cleanup_module(void)
19 #define geneve_xmit dev_queue_xmit
23 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 * |Ver| Opt Len |O|C| Rsvd. | Protocol Type |
25 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
26 * | Virtual Network Identifier (VNI) | Reserved |
27 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 * | Variable Length Options |
29 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
33 * | Option Class | Type |R|R|R| Length |
34 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
35 * | Variable Option Data |
36 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
42 #ifdef __LITTLE_ENDIAN_BITFIELD
56 #define GENEVE_CRIT_OPT_TYPE (1 << 7)
59 #ifdef __LITTLE_ENDIAN_BITFIELD
75 struct geneve_opt options[];
79 #define geneve_dev_create_fb rpl_geneve_dev_create_fb
80 struct net_device *rpl_geneve_dev_create_fb(struct net *net, const char *name,
81 u8 name_assign_type, u16 dst_port);
82 #endif /*ifdef CONFIG_INET */
84 int rpl_geneve_init_module(void);
85 void rpl_geneve_cleanup_module(void);
87 #define geneve_xmit rpl_geneve_xmit
88 netdev_tx_t rpl_geneve_xmit(struct sk_buff *skb);
91 #define geneve_init_module rpl_geneve_init_module
92 #define geneve_cleanup_module rpl_geneve_cleanup_module
94 #define geneve_fill_metadata_dst ovs_geneve_fill_metadata_dst
95 int ovs_geneve_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb);
97 #endif /*ifdef__NET_GENEVE_H */