On 10/31/16 at 07:17am, Tom Herbert wrote: > On Mon, Oct 31, 2016 at 5:59 AM, Thomas Graf <tg...@suug.ch> wrote: > > Noticed while implementing this: How does ILA ensure that dst_output() > > is not invoked in a circular manner? > > > > dstA->output() -> dstB->otuput() -> dstA->output() -> ... > > It doesn't. We'll need to add a check for that. Maybe the rule should > be that an skbuff is only allowed to hit one LWT route?
I'll add a per cpu variable to do a recursion limit for dst_output() which callers to possibly recurse can use. ILA can use that as well. > Another scenario to consider: Suppose someone is doing protocol > translation like in RFC7915. This is one of operations we'd need with > ILA or GRE to implement an IPv4 overlay network over IPv6. Would this > be allowed/supported in LWT BPF? In lwtunnel_xmit() yes, input and output would not support this right now. It will need some logic as the orig_input and orig_output would obviously be expecting the same protocol. This is the reason why the xmit prog type currently has a wider set of allowed helpers.