On 24 Apr 2020, at 16:19, Lorenzo Bianconi wrote:

[...]

+{
+
+       switch (map->map_type) {
+       case BPF_MAP_TYPE_DEVMAP:
+               return dev_map_get_next_key(map, key, next_key);
+       case BPF_MAP_TYPE_DEVMAP_HASH:
+               return dev_map_hash_get_next_key(map, key, next_key);
+       default:
+               break;
+       }
+
+       return -ENOENT;
+}
+
+bool dev_in_exclude_map(struct bpf_dtab_netdev *obj, struct bpf_map *map,
+                       int exclude_ifindex)
+{
+       struct bpf_dtab_netdev *in_obj = NULL;
+       u32 key, next_key;
+       int err;
+
+       if (!map)
+               return false;

doing so it seems mandatory to define an exclude_map even if we want just to do
not forward the packet to the "ingress" interface.
Moreover I was thinking that we can assume to never forward to in the incoming interface. Doing so the code would be simpler I guess. Is there a use case for
it? (forward even to the ingress interface)


This part I can answer, it’s called VEPA, I think it’s part of IEEE 802.1Qbg.

Reply via email to