[ovs-dev] [PATCH v4 0/5] XDP offload using flow API provider

William Tu u9012063 at gmail.com
Tue Feb 23 18:37:43 UTC 2021


> >>> I don't know if this is too much to ask for.
> >>> I wonder if you, or we can work together, to add at least a tunnel
> >>> support, ex: vxlan?
> >>> The current version is a good prototype for people to test an L2/L3
> >>> XDP offload switch,
> >>> but without a good use case, it's hard to attract more people to
> >>> contribute or use it.
> >>
> >> I think we have discussed this before.
> >> Vxlan or other tunneling is indeed important, but that's not straightforward.
> >> Push is easy, but pop is not. Pop requires two rules and recirculation.
> >> Recirculation is highly likely to cause eBPF 1M insn limit error.
> >
> > Recirculation is pretty important. For example connection tracking also
> > relies on recirc. Can we break into multiple program and tail call?
> > For recirc action, can we tail call the main ebpf program, and let the
> > packet goes through parse/megaflow lookup/action?
>
> OK, will try using tail calls.
> This will require vswitchd to load another bpf program for tail calls.
> I guess such a program can be specified in main bpf program meta data.
> I'll check if it works.
>

Do you know whether using bpf function call helps solving the
1M insn limit or stack limitation?
https://lwn.net/Articles/741773/

IIUC, If we have a flow that requires executing multiple actions,
using bpf function call can save the stack size, but the total
instruction limit is still 1M.
When using tail call, we have more work to do to break into
individual ebpf program, but each program can have 1M insn
and stack size.

William


More information about the dev mailing list