Re: [PATCH RFC 1/3] xdp: Infrastructure to generalize XDP
From: Jesper Dangaard Brouer <hidden>
Date: 2016-09-21 19:57:05
On Wed, 21 Sep 2016 08:08:34 -0700 Tom Herbert [off-list ref] wrote:
On Wed, Sep 21, 2016 at 7:48 AM, Thomas Graf [off-list ref] wrote:quoted
On 09/21/16 at 07:19am, Tom Herbert wrote:quoted
certain design that because of constraints on one kernel interface. As a kernel developer I want flexibility on how we design and implement things!Perfectly valid argument. I reviewed your ILA changes and did not object to them.quoted
I think there are two questions that this patch set poses for the community wrt XDP: #1: Should we allow alternate code to run in XDP other than BPF? #2: If #1 is true what is the best way to implement that? If the answer to #1 is "no" then the answer to #2 is irrelevant. So with this RFC I'm hoping we can come the agreement on questions #1.
I vote yes to #1.
quoted
I'm not opposed to running non-BPF code at XDP. I'm against adding a linked list of hook consumers.
I also worry about the performance impact of a linked list. We should simple benchmark it instead of discussing it! ;-)
quoted
Would anyone require to run XDP-BPF in combination ILA? Or XDP-BPF in combination with a potential XDP-nftables? We don't know yet I guess.Right. Admittedly, I feel like we owe a bit of reciprocity to nftables. For ILA we are using the NF_INET_PRE_ROUTING hook with our own code (looks like ipvlan set nfhooks as well). This works really well and saves the value of early demux in ILA. Had we not had the ability to use nfhooks in this fashion it's likely we would have had to create another hook (we did try putting translation in nftables rules but that was too inefficient for ILA).
Thinking about it, I actually think Tom is proposing a very valid user of the XDP hook, which is the kernel itself. And Tom even have a real first user ILA. The way I read the ILA-RFC-draft[1], the XDP hook would benefit the NVE (Network Virtualization Edge) component, which can run separately or run on the Tenant System, where the latter case could use XDP_PASS. [1] https://www.ietf.org/archive/id/draft-herbert-nvo3-ila-02.txt -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat Author of http://www.iptv-analyzer.org LinkedIn: http://www.linkedin.com/in/brouer