Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.2-rc5 57 lines 1.1 kB view raw
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (c) 2008, Intel Corporation. 4 * 5 * Author: Alexander Duyck <alexander.h.duyck@intel.com> 6 */ 7 8#ifndef __NET_TC_SKBEDIT_H 9#define __NET_TC_SKBEDIT_H 10 11#include <net/act_api.h> 12#include <linux/tc_act/tc_skbedit.h> 13 14struct tcf_skbedit_params { 15 u32 flags; 16 u32 priority; 17 u32 mark; 18 u32 mask; 19 u16 queue_mapping; 20 u16 ptype; 21 struct rcu_head rcu; 22}; 23 24struct tcf_skbedit { 25 struct tc_action common; 26 struct tcf_skbedit_params __rcu *params; 27}; 28#define to_skbedit(a) ((struct tcf_skbedit *)a) 29 30/* Return true iff action is mark */ 31static inline bool is_tcf_skbedit_mark(const struct tc_action *a) 32{ 33#ifdef CONFIG_NET_CLS_ACT 34 u32 flags; 35 36 if (a->ops && a->ops->id == TCA_ID_SKBEDIT) { 37 rcu_read_lock(); 38 flags = rcu_dereference(to_skbedit(a)->params)->flags; 39 rcu_read_unlock(); 40 return flags == SKBEDIT_F_MARK; 41 } 42#endif 43 return false; 44} 45 46static inline u32 tcf_skbedit_mark(const struct tc_action *a) 47{ 48 u32 mark; 49 50 rcu_read_lock(); 51 mark = rcu_dereference(to_skbedit(a)->params)->mark; 52 rcu_read_unlock(); 53 54 return mark; 55} 56 57#endif /* __NET_TC_SKBEDIT_H */