FILE
tc_mpls.h
File preview with syntax highlighting.
linux-6.19.14/include/net/tc_act/tc_mpls.h
1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 2/* Copyright (C) 2019 Netronome Systems, Inc. */ 3 4#ifndef __NET_TC_MPLS_H 5#define __NET_TC_MPLS_H 6 7#include <linux/tc_act/tc_mpls.h> 8#include <net/act_api.h> 9 10struct tcf_mpls_params { 11 int tcfm_action; 12 u32 tcfm_label; 13 int action; /* tcf_action */ 14 u8 tcfm_tc; 15 u8 tcfm_ttl; 16 u8 tcfm_bos; 17 __be16 tcfm_proto; 18 struct rcu_head rcu; 19}; 20 21#define ACT_MPLS_TC_NOT_SET 0xff 22#define ACT_MPLS_BOS_NOT_SET 0xff 23#define ACT_MPLS_LABEL_NOT_SET 0xffffffff 24 25struct tcf_mpls { 26 struct tc_action common; 27 struct tcf_mpls_params __rcu *mpls_p; 28}; 29#define to_mpls(a) ((struct tcf_mpls *)a) 30 31static inline u32 tcf_mpls_action(const struct tc_action *a) 32{ 33 u32 tcfm_action; 34 35 rcu_read_lock(); 36 tcfm_action = rcu_dereference(to_mpls(a)->mpls_p)->tcfm_action; 37 rcu_read_unlock(); 38 39 return tcfm_action; 40} 41 42static inline __be16 tcf_mpls_proto(const struct tc_action *a) 43{ 44 __be16 tcfm_proto; 45 46 rcu_read_lock(); 47 tcfm_proto = rcu_dereference(to_mpls(a)->mpls_p)->tcfm_proto; 48 rcu_read_unlock(); 49 50 return tcfm_proto; 51} 52 53static inline u32 tcf_mpls_label(const struct tc_action *a) 54{ 55 u32 tcfm_label; 56 57 rcu_read_lock(); 58 tcfm_label = rcu_dereference(to_mpls(a)->mpls_p)->tcfm_label; 59 rcu_read_unlock(); 60 61 return tcfm_label; 62} 63 64static inline u8 tcf_mpls_tc(const struct tc_action *a) 65{ 66 u8 tcfm_tc; 67 68 rcu_read_lock(); 69 tcfm_tc = rcu_dereference(to_mpls(a)->mpls_p)->tcfm_tc; 70 rcu_read_unlock(); 71 72 return tcfm_tc; 73} 74 75static inline u8 tcf_mpls_bos(const struct tc_action *a) 76{ 77 u8 tcfm_bos; 78 79 rcu_read_lock(); 80 tcfm_bos = rcu_dereference(to_mpls(a)->mpls_p)->tcfm_bos; 81 rcu_read_unlock(); 82 83 return tcfm_bos; 84} 85 86static inline u8 tcf_mpls_ttl(const struct tc_action *a) 87{ 88 u8 tcfm_ttl; 89 90 rcu_read_lock(); 91 tcfm_ttl = rcu_dereference(to_mpls(a)->mpls_p)->tcfm_ttl; 92 rcu_read_unlock(); 93 94 return tcfm_ttl; 95} 96 97#endif /* __NET_TC_MPLS_H */
~/
Read-only file preview.