LCOV - code coverage report
Current view: top level - include/net - mpls.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 0 5 0.0 %
Date: 2021-04-22 12:43:58 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0-only */
       2             : /*
       3             :  * Copyright (c) 2014 Nicira, Inc.
       4             :  */
       5             : 
       6             : #ifndef _NET_MPLS_H
       7             : #define _NET_MPLS_H 1
       8             : 
       9             : #include <linux/if_ether.h>
      10             : #include <linux/netdevice.h>
      11             : #include <linux/mpls.h>
      12             : 
      13             : #define MPLS_HLEN 4
      14             : 
      15             : struct mpls_shim_hdr {
      16             :         __be32 label_stack_entry;
      17             : };
      18             : 
      19           0 : static inline bool eth_p_mpls(__be16 eth_type)
      20             : {
      21           0 :         return eth_type == htons(ETH_P_MPLS_UC) ||
      22           0 :                 eth_type == htons(ETH_P_MPLS_MC);
      23             : }
      24             : 
      25           0 : static inline struct mpls_shim_hdr *mpls_hdr(const struct sk_buff *skb)
      26             : {
      27           0 :         return (struct mpls_shim_hdr *)skb_network_header(skb);
      28             : }
      29             : 
      30             : static inline struct mpls_shim_hdr mpls_entry_encode(u32 label,
      31             :                                                      unsigned int ttl,
      32             :                                                      unsigned int tc,
      33             :                                                      bool bos)
      34             : {
      35             :         struct mpls_shim_hdr result;
      36             : 
      37             :         result.label_stack_entry =
      38             :                 cpu_to_be32((label << MPLS_LS_LABEL_SHIFT) |
      39             :                             (tc << MPLS_LS_TC_SHIFT) |
      40             :                             (bos ? (1 << MPLS_LS_S_SHIFT) : 0) |
      41             :                             (ttl << MPLS_LS_TTL_SHIFT));
      42             :         return result;
      43             : }
      44             : 
      45             : #endif

Generated by: LCOV version 1.14