On Fri, Jul 26, 2019 at 7:26 PM Alexei Starovoitov <alexei.starovoi...@gmail.com> wrote: > > On Fri, Jul 26, 2019 at 9:06 AM Toke Høiland-Jørgensen <t...@redhat.com> > wrote: > > > > This series adds a new map type, devmap_hash, that works like the existing > > devmap type, but using a hash-based indexing scheme. This is useful for the > > use > > case where a devmap is indexed by ifindex (for instance for use with the > > routing > > table lookup helper). For this use case, the regular devmap needs to be > > sized > > after the maximum ifindex number, not the number of devices in it. A > > hash-based > > indexing scheme makes it possible to size the map after the number of > > devices it > > should contain instead. > > > > This was previously part of my patch series that also turned the regular > > bpf_redirect() helper into a map-based one; for this series I just pulled > > out > > the patches that introduced the new map type. > > > > Changelog: > > > > v5: > > > > - Dynamically set the number of hash buckets by rounding up max_entries to > > the > > nearest power of two (mirroring the regular hashmap), as suggested by > > Jesper. > > fyi I'm waiting for Jesper to review this new version.
Now applied. Toke, please consider adding proper selftest for it. fd = bpf_create_map(BPF_MAP_TYPE_DEVMAP_HASH, sizeof(key), sizeof(value), 2, 0); if (fd < 0) { printf("Failed to create devmap_hash '%s'!\n", strerror(errno)); exit(1); } close(fd); is not really a test.