forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
988 B
49 lines
988 B
#ifndef __NET_TUN_PROTO_H |
|
#define __NET_TUN_PROTO_H |
|
|
|
#include <linux/kernel.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
|
|
|