Re: [net-next 2/2] net: netcp: ethss: k2g: add promiscuous mode support
From: Andrew Lunn
Date: Mon Apr 02 2018 - 12:47:19 EST
On Mon, Apr 02, 2018 at 12:17:19PM -0400, Murali Karicheri wrote:
> +static int gbe_set_rx_mode(void *intf_priv, bool promisc)
> +{
> + struct gbe_intf *gbe_intf = intf_priv;
> + struct gbe_priv *gbe_dev = gbe_intf->gbe_dev;
> + struct cpsw_ale *ale = gbe_dev->ale;
> + unsigned long timeout;
> + int i, ret = -ETIMEDOUT;
> +
> + /* Disable(1)/Enable(0) Learn for all ports (host is port 0 and
> + * slaves are port 1 and up
> + */
> + for (i = 0; i <= gbe_dev->num_slaves; i++) {
> + cpsw_ale_control_set(ale, i,
> + ALE_PORT_NOLEARN, !!promisc);
> + cpsw_ale_control_set(ale, i,
> + ALE_PORT_NO_SA_UPDATE, !!promisc);
> + }
Hi Murali
Does this mean that in promisc mode, switching of frames between ports
in hardware is disabled? You are relying on the software bridge to
perform such bridging between ports?
You might want to look at skb->offload_fwd_mark. By setting this, you
can tell the software bridge the hardware has already bridged the
frame. You might then be able to have promisc enabled, and the
hardware still doing the forwarding.
Andrew