mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
[PKT_SCHED]: vlan tag match
Provide a way to use tc filters on vlan tag even if tag is buried in skb due to hardware acceleration. Signed-off-by: Stephen Hemminger <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
dded91611a
commit
3113e88c3c
3 changed files with 20 additions and 1 deletions
|
|
@ -65,6 +65,7 @@
|
|||
#include <linux/string.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/if_vlan.h>
|
||||
#include <linux/tc_ematch/tc_em_meta.h>
|
||||
#include <net/dst.h>
|
||||
#include <net/route.h>
|
||||
|
|
@ -169,6 +170,21 @@ META_COLLECTOR(var_dev)
|
|||
*err = var_dev(skb->dev, dst);
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* vlan tag
|
||||
**************************************************************************/
|
||||
|
||||
META_COLLECTOR(int_vlan_tag)
|
||||
{
|
||||
unsigned short tag;
|
||||
if (vlan_get_tag(skb, &tag) < 0)
|
||||
*err = -1;
|
||||
else
|
||||
dst->value = tag;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* skb attributes
|
||||
**************************************************************************/
|
||||
|
|
@ -520,6 +536,7 @@ static struct meta_ops __meta_ops[TCF_META_TYPE_MAX+1][TCF_META_ID_MAX+1] = {
|
|||
[META_ID(SK_SNDTIMEO)] = META_FUNC(int_sk_sndtimeo),
|
||||
[META_ID(SK_SENDMSG_OFF)] = META_FUNC(int_sk_sendmsg_off),
|
||||
[META_ID(SK_WRITE_PENDING)] = META_FUNC(int_sk_write_pend),
|
||||
[META_ID(VLAN_TAG)] = META_FUNC(int_vlan_tag),
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue