From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: [RFC PATCH net-next 0/5] XDP rx handler Date: Mon, 13 Aug 2018 11:05:08 +0800 Message-ID: <1534129513-4845-1-git-send-email-jasowang@redhat.com> Cc: ast@kernel.org, daniel@iogearbox.net, jbrouer@redhat.com, mst@redhat.com, Jason Wang To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73]:49738 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725849AbeHMFpc (ORCPT ); Mon, 13 Aug 2018 01:45:32 -0400 Sender: netdev-owner@vger.kernel.org List-ID: Hi: This series tries to implement XDP support for rx hanlder. This would be useful for doing native XDP on stacked device like macvlan, bridge or even bond. The idea is simple, let stacked device register a XDP rx handler. And when driver return XDP_PASS, it will call a new helper xdp_do_pass() which will try to pass XDP buff to XDP rx handler directly. XDP rx handler may then decide how to proceed, it could consume the buff, ask driver to drop the packet or ask the driver to fallback to normal skb path. A sample XDP rx handler was implemented for macvlan. And virtio-net (mergeable buffer case) was converted to call xdp_do_pass() as an example. For ease comparision, generic XDP support for rx handler was also implemented. Compared to skb mode XDP on macvlan, native XDP on macvlan (XDP_DROP) shows about 83% improvement. Please review. Thanks Jason Wang (5): net: core: generic XDP support for stacked device net: core: introduce XDP rx handler macvlan: count the number of vlan in source mode macvlan: basic XDP support virtio-net: support XDP rx handler drivers/net/macvlan.c | 189 +++++++++++++++++++++++++++++++++++++++++++-- drivers/net/virtio_net.c | 11 +++ include/linux/filter.h | 1 + include/linux/if_macvlan.h | 1 + include/linux/netdevice.h | 12 +++ net/core/dev.c | 34 ++++++++ net/core/filter.c | 28 +++++++ 7 files changed, 271 insertions(+), 5 deletions(-) -- 2.7.4