Thread (39 messages) flat view 39 messages, 8 authors, 2016-09-25

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help