Thread (10 messages) flat view 10 messages, 2 authors, 2020-05-18

Re: "Forwarding" from TC classifier

From: Lorenz Bauer <hidden>
Date: 2020-05-18 09:38:39
Also in: bpf

On Fri, 15 May 2020 at 15:24, David Ahern [off-list ref] wrote:
On 5/15/20 3:59 AM, Lorenz Bauer wrote:
quoted
Yes, but that doesn't play well with changing the source address to
the local machine's, since the upper part of the stack will drop the
packet due to accept_local=0.
Can you defer the source address swap to the Tx path? Let the packet go
up the stack and do the fib lookup again as an skb. neighbor entry does
not exist, so the packet is stashed, neighbor resolution done, once
resolved the packet goes out. tc program on the egress device can flip
the source address, and then subsequent packets take the XDP fast path.
Hm, that's an interesting idea! I guess this means I have to mark the packet
somehow, to make sure I can identify it on the TX path. Plus, in theory
the packet could exit via any interface, so I'd have to attach classifiers to
a bunch of places if I want to be on the safe side.

Upside: this seems doable in current kernels. Downside: seems more fragile
than I'd like.

Thanks for the thought, I'll play around with it :)
If the next host is on the same LAN I believe the stack will want to
generate an ICMP redirect, but that can be squashed.
-- 
Lorenz Bauer  |  Systems Engineer
6th Floor, County Hall/The Riverside Building, SE1 7PB, UK

www.cloudflare.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help