On Fri, May 29, 2020 at 8:59 AM Jesper Dangaard Brouer <brouer@xxxxxxxxxx> wrote: > > The devmap map-value can be read from BPF-prog side, and could be used for a > storage area per device. This could e.g. contain info on headers that need If BPF program needs a storage area per device, why can't it just use a separate map or just plain array (both keyed by ifindex) to store whatever it needs per-device? It's not clear why this flexibility and complexity is needed from the description above. > to be added when packet egress this device. > > This patchset adds a dynamic storage member to struct bpf_devmap_val. More > importantly the struct bpf_devmap_val is made dynamic via leveraging and > requiring BTF for struct sizes above 4. The only mandatory struct member is > 'ifindex' with a fixed offset of zero. > > Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx> > --- > kernel/bpf/devmap.c | 216 ++++++++++++++++++++++++++++++++++++++++++++------- > 1 file changed, 185 insertions(+), 31 deletions(-) > [...]