2008-09-13 03:30:20 +04:00
/*
* Copyright ( c ) 2008 , Intel Corporation .
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms and conditions of the GNU General Public License ,
* version 2 , as published by the Free Software Foundation .
*
* This program is distributed in the hope 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 .
*
* You should have received a copy of the GNU General Public License along with
2013-12-06 21:13:40 +04:00
* this program ; if not , see < http : //www.gnu.org/licenses/>.
2008-09-13 03:30:20 +04:00
*
* Author : Alexander Duyck < alexander . h . duyck @ intel . com >
*/
# ifndef __NET_TC_SKBEDIT_H
# define __NET_TC_SKBEDIT_H
# include <net/act_api.h>
2016-03-08 13:42:32 +03:00
# include <linux/tc_act/tc_skbedit.h>
2008-09-13 03:30:20 +04:00
struct tcf_skbedit {
struct tcf_common common ;
2016-07-02 13:43:15 +03:00
u32 flags ;
u32 priority ;
u32 mark ;
u16 queue_mapping ;
u16 ptype ;
2008-09-13 03:30:20 +04:00
} ;
2014-02-12 05:07:31 +04:00
# define to_skbedit(a) \
container_of ( a - > priv , struct tcf_skbedit , common )
2008-09-13 03:30:20 +04:00
2016-03-08 13:42:32 +03:00
/* Return true iff action is mark */
static inline bool is_tcf_skbedit_mark ( const struct tc_action * a )
{
# ifdef CONFIG_NET_CLS_ACT
if ( a - > ops & & a - > ops - > type = = TCA_ACT_SKBEDIT )
return to_skbedit ( a ) - > flags = = SKBEDIT_F_MARK ;
# endif
return false ;
}
static inline u32 tcf_skbedit_mark ( const struct tc_action * a )
{
return to_skbedit ( a ) - > mark ;
}
2008-09-13 03:30:20 +04:00
# endif /* __NET_TC_SKBEDIT_H */