Files
cubelinux-kernel/include/net/tun_proto.h
T
Greg Kroah-Hartman 598cf27219 Linux 6.19.3
Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
Tested-by: Peter Schneider <pschneider1968@googlemail.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Brett A C Sheffield <bacs@librecast.net>
Tested-by: Mark Brown <broonie@kernel.org>
Tested-by: Luna Jernberg <droidbittin@gmail.com>
Tested-by: Ronald Warsow <rwarsow@gmx.de>
Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
Tested-by: Ron Economos <re@w6rz.net>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-02-19 16:33:27 +01:00

51 lines
1015 B
C

#ifndef __NET_TUN_PROTO_H
#define __NET_TUN_PROTO_H
#include <linux/if_ether.h>
#include <linux/types.h>
/* One byte protocol values as defined by VXLAN-GPE and NSH. These will
* hopefully get a shared IANA registry.
*/
#define TUN_P_IPV4 0x01
#define TUN_P_IPV6 0x02
#define TUN_P_ETHERNET 0x03
#define TUN_P_NSH 0x04
#define TUN_P_MPLS_UC 0x05
static inline __be16 tun_p_to_eth_p(u8 proto)
{
switch (proto) {
case TUN_P_IPV4:
return htons(ETH_P_IP);
case TUN_P_IPV6:
return htons(ETH_P_IPV6);
case TUN_P_ETHERNET:
return htons(ETH_P_TEB);
case TUN_P_NSH:
return htons(ETH_P_NSH);
case TUN_P_MPLS_UC:
return htons(ETH_P_MPLS_UC);
}
return 0;
}
static inline u8 tun_p_from_eth_p(__be16 proto)
{
switch (proto) {
case htons(ETH_P_IP):
return TUN_P_IPV4;
case htons(ETH_P_IPV6):
return TUN_P_IPV6;
case htons(ETH_P_TEB):
return TUN_P_ETHERNET;
case htons(ETH_P_NSH):
return TUN_P_NSH;
case htons(ETH_P_MPLS_UC):
return TUN_P_MPLS_UC;
}
return 0;
}
#endif