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.
> + */
>...
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_...