root/include/net/tun_proto.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. tun_p_to_eth_p
  2. tun_p_from_eth_p

   1 #ifndef __NET_TUN_PROTO_H
   2 #define __NET_TUN_PROTO_H
   3 
   4 #include <linux/kernel.h>
   5 
   6 /* One byte protocol values as defined by VXLAN-GPE and NSH. These will
   7  * hopefully get a shared IANA registry.
   8  */
   9 #define TUN_P_IPV4      0x01
  10 #define TUN_P_IPV6      0x02
  11 #define TUN_P_ETHERNET  0x03
  12 #define TUN_P_NSH       0x04
  13 #define TUN_P_MPLS_UC   0x05
  14 
  15 static inline __be16 tun_p_to_eth_p(u8 proto)
  16 {
  17         switch (proto) {
  18         case TUN_P_IPV4:
  19                 return htons(ETH_P_IP);
  20         case TUN_P_IPV6:
  21                 return htons(ETH_P_IPV6);
  22         case TUN_P_ETHERNET:
  23                 return htons(ETH_P_TEB);
  24         case TUN_P_NSH:
  25                 return htons(ETH_P_NSH);
  26         case TUN_P_MPLS_UC:
  27                 return htons(ETH_P_MPLS_UC);
  28         }
  29         return 0;
  30 }
  31 
  32 static inline u8 tun_p_from_eth_p(__be16 proto)
  33 {
  34         switch (proto) {
  35         case htons(ETH_P_IP):
  36                 return TUN_P_IPV4;
  37         case htons(ETH_P_IPV6):
  38                 return TUN_P_IPV6;
  39         case htons(ETH_P_TEB):
  40                 return TUN_P_ETHERNET;
  41         case htons(ETH_P_NSH):
  42                 return TUN_P_NSH;
  43         case htons(ETH_P_MPLS_UC):
  44                 return TUN_P_MPLS_UC;
  45         }
  46         return 0;
  47 }
  48 
  49 #endif

/* [<][>][^][v][top][bottom][index][help] */