mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-13 02:16:42 +07:00
86a9805725
This patch makes it so that we add udp_tunnel.h to vxlan.h and geneve.h header files. This is useful as I plan to move the generic handlers for the port offloads into the udp_tunnel header file and leave the vxlan and geneve headers to be a bit more protocol specific. I also went through and cleaned out a number of redundant includes that where in the .h and .c files for these drivers. Signed-off-by: Alexander Duyck <aduyck@mirantis.com> Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
74 lines
1.8 KiB
C
74 lines
1.8 KiB
C
#ifndef __NET_GENEVE_H
|
|
#define __NET_GENEVE_H 1
|
|
|
|
#include <net/udp_tunnel.h>
|
|
|
|
/* Geneve Header:
|
|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
* |Ver| Opt Len |O|C| Rsvd. | Protocol Type |
|
|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
* | Virtual Network Identifier (VNI) | Reserved |
|
|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
* | Variable Length Options |
|
|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
*
|
|
* Option Header:
|
|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
* | Option Class | Type |R|R|R| Length |
|
|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
* | Variable Option Data |
|
|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
*/
|
|
|
|
struct geneve_opt {
|
|
__be16 opt_class;
|
|
u8 type;
|
|
#ifdef __LITTLE_ENDIAN_BITFIELD
|
|
u8 length:5;
|
|
u8 r3:1;
|
|
u8 r2:1;
|
|
u8 r1:1;
|
|
#else
|
|
u8 r1:1;
|
|
u8 r2:1;
|
|
u8 r3:1;
|
|
u8 length:5;
|
|
#endif
|
|
u8 opt_data[];
|
|
};
|
|
|
|
#define GENEVE_CRIT_OPT_TYPE (1 << 7)
|
|
|
|
struct genevehdr {
|
|
#ifdef __LITTLE_ENDIAN_BITFIELD
|
|
u8 opt_len:6;
|
|
u8 ver:2;
|
|
u8 rsvd1:6;
|
|
u8 critical:1;
|
|
u8 oam:1;
|
|
#else
|
|
u8 ver:2;
|
|
u8 opt_len:6;
|
|
u8 oam:1;
|
|
u8 critical:1;
|
|
u8 rsvd1:6;
|
|
#endif
|
|
__be16 proto_type;
|
|
u8 vni[3];
|
|
u8 rsvd2;
|
|
struct geneve_opt options[];
|
|
};
|
|
|
|
static inline void geneve_get_rx_port(struct net_device *netdev)
|
|
{
|
|
ASSERT_RTNL();
|
|
call_netdevice_notifiers(NETDEV_OFFLOAD_PUSH_GENEVE, netdev);
|
|
}
|
|
|
|
#ifdef CONFIG_INET
|
|
struct net_device *geneve_dev_create_fb(struct net *net, const char *name,
|
|
u8 name_assign_type, u16 dst_port);
|
|
#endif /*ifdef CONFIG_INET */
|
|
|
|
#endif /*ifdef__NET_GENEVE_H */
|