[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <45EBCE3A-FE92-4A8D-B5D8-DED4E30DF419@ozlabs.org>
Date: Sat, 17 Nov 2012 00:06:03 +0000
From: Matt Evans <matt@...abs.org>
To: Daniel Borkmann <dxchgb@...il.com>
Cc: davem@...emloft.net, benh@...nel.crashing.org,
netdev@...r.kernel.org
Subject: Re: [PATCH net-next 2/2] PPC: net: bpf_jit_comp: add VLAN instructions for BPF JIT
Hi,
On 08/11/2012, at 9:41 PM, Daniel Borkmann wrote:
> This patch is a follow-up for patch "net: filter: add vlan tag access"
> to support the new VLAN_TAG/VLAN_TAG_PRESENT accessors in BPF JIT.
>
> Signed-off-by: Daniel Borkmann <daniel.borkmann@....ee.ethz.ch>
> Cc: Matt Evans <matt@...abs.org>
> Cc: Benjamin Herrenschmidt <benh@...nel.crashing.org>
> ---
> Disclaimer: uncompiled and untested, since I don't have a PPC machine,
> but it should (hopefully) integrate cleanly; impl. after PPC instruction
> reference.
And for this too,
Acked-by: Matt Evans <matt@...abs.org>
Sorry for the delay in reviewing this!
Thanks,
Matt
>
> arch/powerpc/net/bpf_jit_comp.c | 14 ++++++++++++++
> 1 files changed, 14 insertions(+), 0 deletions(-)
>
> diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
> index b9434de..e834f1e 100644
> --- a/arch/powerpc/net/bpf_jit_comp.c
> +++ b/arch/powerpc/net/bpf_jit_comp.c
> @@ -13,6 +13,8 @@
> #include <asm/cacheflush.h>
> #include <linux/netdevice.h>
> #include <linux/filter.h>
> +#include <linux/if_vlan.h>
> +
> #include "bpf_jit.h"
>
> #ifndef __BIG_ENDIAN
> @@ -89,6 +91,8 @@ static void bpf_jit_build_prologue(struct sk_filter *fp, u32 *image,
> case BPF_S_ANC_IFINDEX:
> case BPF_S_ANC_MARK:
> case BPF_S_ANC_RXHASH:
> + case BPF_S_ANC_VLAN_TAG:
> + case BPF_S_ANC_VLAN_TAG_PRESENT:
> case BPF_S_ANC_CPU:
> case BPF_S_ANC_QUEUE:
> case BPF_S_LD_W_ABS:
> @@ -382,6 +386,16 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
> PPC_LWZ_OFFS(r_A, r_skb, offsetof(struct sk_buff,
> rxhash));
> break;
> + case BPF_S_ANC_VLAN_TAG:
> + case BPF_S_ANC_VLAN_TAG_PRESENT:
> + BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff, vlan_tci) != 2);
> + PPC_LHZ_OFFS(r_A, r_skb, offsetof(struct sk_buff,
> + vlan_tci));
> + if (filter[i].code == BPF_S_ANC_VLAN_TAG)
> + PPC_ANDI(r_A, r_A, VLAN_VID_MASK);
> + else
> + PPC_ANDI(r_A, r_A, VLAN_TAG_PRESENT);
> + break;
> case BPF_S_ANC_QUEUE:
> BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
> queue_mapping) != 2);
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists