2008-09-12 16:30:20 -07: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 09:13:40 -08:00
* this program ; if not , see < http : //www.gnu.org/licenses/>.
2008-09-12 16:30:20 -07: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 12:42:32 +02:00
# include <linux/tc_act/tc_skbedit.h>
2008-09-12 16:30:20 -07:00
struct tcf_skbedit {
2016-07-25 16:09:42 -07:00
struct tc_action common ;
2016-07-02 06:43:15 -04:00
u32 flags ;
u32 priority ;
u32 mark ;
2016-10-24 20:32:57 +08:00
u32 mask ;
2016-07-02 06:43:15 -04:00
u16 queue_mapping ;
u16 ptype ;
2008-09-12 16:30:20 -07:00
} ;
2016-07-25 16:09:41 -07:00
# define to_skbedit(a) ((struct tcf_skbedit *)a)
2008-09-12 16:30:20 -07:00
2016-03-08 12:42:32 +02: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-12 16:30:20 -07:00
# endif /* __NET_TC_SKBEDIT_H */