search for: dsa_switch

Displaying 13 results from an estimated 13 matches for "dsa_switch".

2023 Jan 17
1
[Bridge] [RFC PATCH net-next 2/5] net: dsa: propagate flags down towards drivers
...n interfaces. > > Signed-off-by: Hans J. Schultz <netdev at kapio-technology.com> > --- > @@ -3364,6 +3368,7 @@ static int dsa_slave_fdb_event(struct net_device *dev, > struct dsa_port *dp = dsa_slave_to_port(dev); > bool host_addr = fdb_info->is_local; > struct dsa_switch *ds = dp->ds; > + u16 fdb_flags = 0; > > if (ctx && ctx != dp) > return 0; > @@ -3410,6 +3415,9 @@ static int dsa_slave_fdb_event(struct net_device *dev, > orig_dev->name, fdb_info->addr, fdb_info->vid, > host_addr ? " as host address...
2023 Feb 17
1
[Bridge] [PATCH net-next 5/5] net: dsa: mv88e6xxx: implementation of dynamic ATU entries
...gt;lag_fdb_add || !ds->ops->lag_fdb_del) return -EOPNOTSUPP; } else { if (!ds->ops->port_fdb_add || !ds->ops->port_fdb_del) return -EOPNOTSUPP; } What you should be doing is you should be using the pahole tool to find a good place for a new unsigned long field in struct dsa_switch, and add a new field ds->supported_fdb_flags. You should extend the early checking from dsa_slave_fdb_event() and exit without doing anything if the (fdb->flags & ~ds->supported_fdb_flags) expression is non-zero. This way you would kill 2 birds with 1 stone, since individual drivers w...
2023 Mar 30
1
[Bridge] [PATCH v2 net-next 2/6] net: dsa: propagate flags down towards drivers
On Thu, Mar 30, 2023 at 18:07, Vladimir Oltean <olteanv at gmail.com> wrote: > > Then, make DSA decide whether to handle the "added_by_user && !is_static" > combination or not, based on the presence of the DSA_FDB_FLAG_DYNAMIC > flag, which will be set in ds->supported_fdb_flags only for the mv88e6xxx > driver. Okay, so this will require a new function in
2023 Jan 18
1
[Bridge] [RFC PATCH net-next 2/5] net: dsa: propagate flags down towards drivers
...d-off-by: Hans J. Schultz <netdev at kapio-technology.com> >> --- >> @@ -3364,6 +3368,7 @@ static int dsa_slave_fdb_event(struct net_device >> *dev, >> struct dsa_port *dp = dsa_slave_to_port(dev); >> bool host_addr = fdb_info->is_local; >> struct dsa_switch *ds = dp->ds; >> + u16 fdb_flags = 0; >> >> if (ctx && ctx != dp) >> return 0; >> @@ -3410,6 +3415,9 @@ static int dsa_slave_fdb_event(struct net_device >> *dev, >> orig_dev->name, fdb_info->addr, fdb_info->vid, >>...
2023 Mar 27
1
[Bridge] [PATCH v2 net-next 2/6] net: dsa: propagate flags down towards drivers
On Sat, Mar 18, 2023 at 03:10:06PM +0100, Hans J. Schultz wrote: > diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c > index e5f156940c67..c07a2e225ae5 100644 > --- a/net/dsa/dsa.c > +++ b/net/dsa/dsa.c > @@ -626,6 +626,12 @@ static int dsa_switch_setup(struct dsa_switch *ds) > > ds->configure_vlan_while_not_filtering = true; > > + /* Since dynamic FDB entries are legacy, all switch drivers should > + * support the flag at least by just installing a static entry and > + * letting the bridge age it. > + */ &gt...
2014 May 08
2
[PATCH] net: get rid of SET_ETHTOOL_OPS
...ol_ops = &br_ethtool_ops; SET_NETDEV_DEVTYPE(dev, &br_type); dev->tx_queue_len = 0; dev->priv_flags = IFF_EBRIDGE; diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 02c0e17..64c5af0 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, return slave_dev; slave_dev->features = master->vlan_features; - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; eth_hw_addr_inherit(slave_dev, master); slave_dev->tx_queue_len = 0; d...
2014 May 08
2
[PATCH] net: get rid of SET_ETHTOOL_OPS
...ol_ops = &br_ethtool_ops; SET_NETDEV_DEVTYPE(dev, &br_type); dev->tx_queue_len = 0; dev->priv_flags = IFF_EBRIDGE; diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 02c0e17..64c5af0 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, return slave_dev; slave_dev->features = master->vlan_features; - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; eth_hw_addr_inherit(slave_dev, master); slave_dev->tx_queue_len = 0; d...
2014 May 11
7
[PATCH] [resend] net: get rid of SET_ETHTOOL_OPS
...ol_ops = &br_ethtool_ops; SET_NETDEV_DEVTYPE(dev, &br_type); dev->tx_queue_len = 0; dev->priv_flags = IFF_EBRIDGE; diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 02c0e17..64c5af0 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, return slave_dev; slave_dev->features = master->vlan_features; - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; eth_hw_addr_inherit(slave_dev, master); slave_dev->tx_queue_len = 0; d...
2014 May 11
7
[PATCH] [resend] net: get rid of SET_ETHTOOL_OPS
...ol_ops = &br_ethtool_ops; SET_NETDEV_DEVTYPE(dev, &br_type); dev->tx_queue_len = 0; dev->priv_flags = IFF_EBRIDGE; diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 02c0e17..64c5af0 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, return slave_dev; slave_dev->features = master->vlan_features; - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; eth_hw_addr_inherit(slave_dev, master); slave_dev->tx_queue_len = 0; d...
2014 May 11
7
[PATCH] [resend] net: get rid of SET_ETHTOOL_OPS
...ol_ops = &br_ethtool_ops; SET_NETDEV_DEVTYPE(dev, &br_type); dev->tx_queue_len = 0; dev->priv_flags = IFF_EBRIDGE; diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 02c0e17..64c5af0 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, return slave_dev; slave_dev->features = master->vlan_features; - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; eth_hw_addr_inherit(slave_dev, master); slave_dev->tx_queue_len = 0; d...
2014 May 08
0
[PATCH] net: get rid of SET_ETHTOOL_OPS
...YPE(dev, &br_type); > dev->tx_queue_len = 0; > dev->priv_flags = IFF_EBRIDGE; > diff --git a/net/dsa/slave.c b/net/dsa/slave.c > index 02c0e17..64c5af0 100644 > --- a/net/dsa/slave.c > +++ b/net/dsa/slave.c > @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, > return slave_dev; > > slave_dev->features = master->vlan_features; > - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); > + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; > eth_hw_addr_...
2014 May 11
0
[PATCH] [resend] net: get rid of SET_ETHTOOL_OPS
...YPE(dev, &br_type); > dev->tx_queue_len = 0; > dev->priv_flags = IFF_EBRIDGE; > diff --git a/net/dsa/slave.c b/net/dsa/slave.c > index 02c0e17..64c5af0 100644 > --- a/net/dsa/slave.c > +++ b/net/dsa/slave.c > @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, > return slave_dev; > > slave_dev->features = master->vlan_features; > - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); > + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; > eth_hw_addr_...
2014 May 11
0
[PATCH] [resend] net: get rid of SET_ETHTOOL_OPS
...YPE(dev, &br_type); > dev->tx_queue_len = 0; > dev->priv_flags = IFF_EBRIDGE; > diff --git a/net/dsa/slave.c b/net/dsa/slave.c > index 02c0e17..64c5af0 100644 > --- a/net/dsa/slave.c > +++ b/net/dsa/slave.c > @@ -346,7 +346,7 @@ dsa_slave_create(struct dsa_switch *ds, struct device *parent, > return slave_dev; > > slave_dev->features = master->vlan_features; > - SET_ETHTOOL_OPS(slave_dev, &dsa_slave_ethtool_ops); > + slave_dev->ethtool_ops = &dsa_slave_ethtool_ops; > eth_hw_addr_...