1 #ifndef __NET_TUN_PROTO_H
2 #define __NET_TUN_PROTO_H
4 #include <linux/if_ether.h>
5 #include <linux/types.h>
7 /* One byte protocol values as defined by VXLAN-GPE and NSH. These will
8 * hopefully get a shared IANA registry.
10 #define TUN_P_IPV4 0x01
11 #define TUN_P_IPV6 0x02
12 #define TUN_P_ETHERNET 0x03
13 #define TUN_P_NSH 0x04
14 #define TUN_P_MPLS_UC 0x05
16 static inline __be16
tun_p_to_eth_p(u8 proto
)
20 return htons(ETH_P_IP
);
22 return htons(ETH_P_IPV6
);
24 return htons(ETH_P_TEB
);
26 return htons(ETH_P_NSH
);
28 return htons(ETH_P_MPLS_UC
);
33 static inline u8
tun_p_from_eth_p(__be16 proto
)
38 case htons(ETH_P_IPV6
):
40 case htons(ETH_P_TEB
):
41 return TUN_P_ETHERNET
;
42 case htons(ETH_P_NSH
):
44 case htons(ETH_P_MPLS_UC
):