Daniel Thanks. I think I just now found all this in the code (too much code to look at :) Daniel Lezcano wrote: [ snip ] > >> >> If yes, then below approach will work. If no, then we'll need >> something else >> since both L2s should get the packet in their own right. > > It is a critical path for broadcast and multicast incoming traffic, > should I implement this approach and we try to optimize that later ? > >>> The solution I see here is: >>> >>> if namespace is l3 then; >>> net_ns match any net_ns registered as listening on this address >>> else >>> net_ns_match >>> fi >>> >>> The registered network namespace is a list shared between brothers l3 >>> namespaces. This will add more overhead for sure. Does anyone have >>> comments on that or perhaps a better solution ? In the above solution, you'll need to account for wildcard binds as well. So, for l3, a match is ( !rcv_saddr || rcv_saddr == loc_addr). Should be easy enough with the right arguments. My suggestion is to make broadcast case use a different match macro/function. -vlad