Re: [PATCH v3 1/2] net: core: Notify on changes to dev->promiscuity.

From: Ivan Vecera
Date: Thu Aug 29 2019 - 08:55:24 EST


On Thu, 29 Aug 2019 14:44:14 +0200
Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> wrote:

> When a port is added to a bridge, then the port gets in promisc mode.
> But in our case the HW has bridge capabilities so it is not required
> to set the port in promisc mode.
> But if someone else requires the port to be in promisc mode (tcpdump
> or any other application) then I would like to set the port in promisc
> mode.
> In previous emails Andrew came with the suggestion to look at
> dev->promiscuity and check if the port is a bridge port. Using this
> information I could see when to add the port in promisc mode. He also
> suggested to add a new switchdev call(maybe I missunderstood him, or I
> have done it at the wrong place) in case there are no callbacks in the
> driver to get this information.

I would use the 1st suggestion.

for/in your driver:
if (dev->promiscuity > 0) {
if (dev->promiscuity == 1 && netif_is_bridge_port(dev)) {
/* no need to set promisc mode because promiscuity
* was requested by bridge
*/
...
} else {
/* need to set promisc mode as someone else requested
* promiscuity
*/
}
}

Thanks,
Ivan