Blame view

kernel/linux-rt-4.4.41/include/net/mpls.h 1.14 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  /*
   * Copyright (c) 2014 Nicira, Inc.
   *
   * This program is free software; you can redistribute it and/or
   * modify it under the terms of version 2 of the GNU General Public
   * License as published by the Free Software Foundation.
   *
   * This program is distributed in the hope that it will be useful, but
   * WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
   * General Public License for more details.
   */
  
  #ifndef _NET_MPLS_H
  #define _NET_MPLS_H 1
  
  #include <linux/if_ether.h>
  #include <linux/netdevice.h>
  
  #define MPLS_HLEN 4
  
  static inline bool eth_p_mpls(__be16 eth_type)
  {
  	return eth_type == htons(ETH_P_MPLS_UC) ||
  		eth_type == htons(ETH_P_MPLS_MC);
  }
  
  /*
   * For non-MPLS skbs this will correspond to the network header.
   * For MPLS skbs it will be before the network_header as the MPLS
   * label stack lies between the end of the mac header and the network
   * header. That is, for MPLS skbs the end of the mac header
   * is the top of the MPLS label stack.
   */
  static inline unsigned char *skb_mpls_header(struct sk_buff *skb)
  {
  	return skb_mac_header(skb) + skb->mac_len;
  }
  #endif