<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/dsa/hirschmann, branch linux-5.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.16.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.16.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-01-27T11:01:46Z</updated>
<entry>
<title>net: dsa: hellcreek: Add missing PTP via UDP rules</title>
<updated>2022-01-27T11:01:46Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-12-14T13:45:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4a8e65665491d688d4d34dd2601c69d54698a109'/>
<id>urn:sha1:4a8e65665491d688d4d34dd2601c69d54698a109</id>
<content type='text'>
[ Upstream commit 6cf01e451599da630ff1af529d61c5e4db4550ab ]

The switch supports PTP for UDP transport too. Therefore, add the missing static
FDB entries to ensure correct forwarding of these packets.

Fixes: ddd56dfe52c9 ("net: dsa: hellcreek: Add PTP clock support")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Acked-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports</title>
<updated>2022-01-27T11:01:46Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-12-14T13:45:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7f82c5da785a970bd35d83fa483fc6909d96c137'/>
<id>urn:sha1:7f82c5da785a970bd35d83fa483fc6909d96c137</id>
<content type='text'>
[ Upstream commit cad1798d2d0811ded37d1e946c6796102e58013b ]

Allow PTP peer delay measurements on blocked ports by STP. In case of topology
changes the PTP stack can directly start with the correct delays.

Fixes: ddd56dfe52c9 ("net: dsa: hellcreek: Add PTP clock support")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Reviewed-by: Vladimir Oltean &lt;olteanv@gmail.com&gt;
Acked-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: Add STP forwarding rule</title>
<updated>2022-01-27T11:01:46Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-12-14T13:45:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e9f9007ea07fcece0972106840469627588a6051'/>
<id>urn:sha1:e9f9007ea07fcece0972106840469627588a6051</id>
<content type='text'>
[ Upstream commit b7ade35eb53a2455f737a623c24e4b24455b2271 ]

Treat STP as management traffic. STP traffic is designated for the CPU port
only. In addition, STP traffic has to pass blocked ports.

Fixes: e4b27ebc780f ("net: dsa: Add DSA driver for Hirschmann Hellcreek switches")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Reviewed-by: Vladimir Oltean &lt;olteanv@gmail.com&gt;
Acked-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: Fix insertion of static FDB entries</title>
<updated>2022-01-27T11:01:46Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-12-14T13:45:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=af1629fe51121e81ff3179a5c12ce9167a9fe912'/>
<id>urn:sha1:af1629fe51121e81ff3179a5c12ce9167a9fe912</id>
<content type='text'>
[ Upstream commit 4db4c3ea56978086ca367a355e440de17d534827 ]

The insertion of static FDB entries ignores the pass_blocked bit. That bit is
evaluated with regards to STP. Add the missing functionality.

Fixes: e4b27ebc780f ("net: dsa: Add DSA driver for Hirschmann Hellcreek switches")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Reviewed-by: Vladimir Oltean &lt;olteanv@gmail.com&gt;
Acked-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: convert users of bitmap_foo() to linkmode_foo()</title>
<updated>2021-10-24T12:58:52Z</updated>
<author>
<name>Sean Anderson</name>
</author>
<published>2021-10-22T22:41:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4973056cceacc70966396039fae99867dfafd796'/>
<id>urn:sha1:4973056cceacc70966396039fae99867dfafd796</id>
<content type='text'>
This converts instances of
	bitmap_foo(args..., __ETHTOOL_LINK_MODE_MASK_NBITS)
to
	linkmode_foo(args...)

I manually fixed up some lines to prevent them from being excessively
long. Otherwise, this change was generated with the following semantic
patch:

// Generated with
// echo linux/linkmode.h &gt; includes
// git grep -Flf includes include/ | cut -f 2- -d / | cat includes - \
// | sort | uniq | tee new_includes | wc -l &amp;&amp; mv new_includes includes
// and repeating until the number stopped going up
@i@
@@

(
 #include &lt;linux/acpi_mdio.h&gt;
|
 #include &lt;linux/brcmphy.h&gt;
|
 #include &lt;linux/dsa/loop.h&gt;
|
 #include &lt;linux/dsa/sja1105.h&gt;
|
 #include &lt;linux/ethtool.h&gt;
|
 #include &lt;linux/ethtool_netlink.h&gt;
|
 #include &lt;linux/fec.h&gt;
|
 #include &lt;linux/fs_enet_pd.h&gt;
|
 #include &lt;linux/fsl/enetc_mdio.h&gt;
|
 #include &lt;linux/fwnode_mdio.h&gt;
|
 #include &lt;linux/linkmode.h&gt;
|
 #include &lt;linux/lsm_audit.h&gt;
|
 #include &lt;linux/mdio-bitbang.h&gt;
|
 #include &lt;linux/mdio.h&gt;
|
 #include &lt;linux/mdio-mux.h&gt;
|
 #include &lt;linux/mii.h&gt;
|
 #include &lt;linux/mii_timestamper.h&gt;
|
 #include &lt;linux/mlx5/accel.h&gt;
|
 #include &lt;linux/mlx5/cq.h&gt;
|
 #include &lt;linux/mlx5/device.h&gt;
|
 #include &lt;linux/mlx5/driver.h&gt;
|
 #include &lt;linux/mlx5/eswitch.h&gt;
|
 #include &lt;linux/mlx5/fs.h&gt;
|
 #include &lt;linux/mlx5/port.h&gt;
|
 #include &lt;linux/mlx5/qp.h&gt;
|
 #include &lt;linux/mlx5/rsc_dump.h&gt;
|
 #include &lt;linux/mlx5/transobj.h&gt;
|
 #include &lt;linux/mlx5/vport.h&gt;
|
 #include &lt;linux/of_mdio.h&gt;
|
 #include &lt;linux/of_net.h&gt;
|
 #include &lt;linux/pcs-lynx.h&gt;
|
 #include &lt;linux/pcs/pcs-xpcs.h&gt;
|
 #include &lt;linux/phy.h&gt;
|
 #include &lt;linux/phy_led_triggers.h&gt;
|
 #include &lt;linux/phylink.h&gt;
|
 #include &lt;linux/platform_data/bcmgenet.h&gt;
|
 #include &lt;linux/platform_data/xilinx-ll-temac.h&gt;
|
 #include &lt;linux/pxa168_eth.h&gt;
|
 #include &lt;linux/qed/qed_eth_if.h&gt;
|
 #include &lt;linux/qed/qed_fcoe_if.h&gt;
|
 #include &lt;linux/qed/qed_if.h&gt;
|
 #include &lt;linux/qed/qed_iov_if.h&gt;
|
 #include &lt;linux/qed/qed_iscsi_if.h&gt;
|
 #include &lt;linux/qed/qed_ll2_if.h&gt;
|
 #include &lt;linux/qed/qed_nvmetcp_if.h&gt;
|
 #include &lt;linux/qed/qed_rdma_if.h&gt;
|
 #include &lt;linux/sfp.h&gt;
|
 #include &lt;linux/sh_eth.h&gt;
|
 #include &lt;linux/smsc911x.h&gt;
|
 #include &lt;linux/soc/nxp/lpc32xx-misc.h&gt;
|
 #include &lt;linux/stmmac.h&gt;
|
 #include &lt;linux/sunrpc/svc_rdma.h&gt;
|
 #include &lt;linux/sxgbe_platform.h&gt;
|
 #include &lt;net/cfg80211.h&gt;
|
 #include &lt;net/dsa.h&gt;
|
 #include &lt;net/mac80211.h&gt;
|
 #include &lt;net/selftests.h&gt;
|
 #include &lt;rdma/ib_addr.h&gt;
|
 #include &lt;rdma/ib_cache.h&gt;
|
 #include &lt;rdma/ib_cm.h&gt;
|
 #include &lt;rdma/ib_hdrs.h&gt;
|
 #include &lt;rdma/ib_mad.h&gt;
|
 #include &lt;rdma/ib_marshall.h&gt;
|
 #include &lt;rdma/ib_pack.h&gt;
|
 #include &lt;rdma/ib_pma.h&gt;
|
 #include &lt;rdma/ib_sa.h&gt;
|
 #include &lt;rdma/ib_smi.h&gt;
|
 #include &lt;rdma/ib_umem.h&gt;
|
 #include &lt;rdma/ib_umem_odp.h&gt;
|
 #include &lt;rdma/ib_verbs.h&gt;
|
 #include &lt;rdma/iw_cm.h&gt;
|
 #include &lt;rdma/mr_pool.h&gt;
|
 #include &lt;rdma/opa_addr.h&gt;
|
 #include &lt;rdma/opa_port_info.h&gt;
|
 #include &lt;rdma/opa_smi.h&gt;
|
 #include &lt;rdma/opa_vnic.h&gt;
|
 #include &lt;rdma/rdma_cm.h&gt;
|
 #include &lt;rdma/rdma_cm_ib.h&gt;
|
 #include &lt;rdma/rdmavt_cq.h&gt;
|
 #include &lt;rdma/rdma_vt.h&gt;
|
 #include &lt;rdma/rdmavt_qp.h&gt;
|
 #include &lt;rdma/rw.h&gt;
|
 #include &lt;rdma/tid_rdma_defs.h&gt;
|
 #include &lt;rdma/uverbs_ioctl.h&gt;
|
 #include &lt;rdma/uverbs_named_ioctl.h&gt;
|
 #include &lt;rdma/uverbs_std_types.h&gt;
|
 #include &lt;rdma/uverbs_types.h&gt;
|
 #include &lt;soc/mscc/ocelot.h&gt;
|
 #include &lt;soc/mscc/ocelot_ptp.h&gt;
|
 #include &lt;soc/mscc/ocelot_vcap.h&gt;
|
 #include &lt;trace/events/ib_mad.h&gt;
|
 #include &lt;trace/events/rdma_core.h&gt;
|
 #include &lt;trace/events/rdma.h&gt;
|
 #include &lt;trace/events/rpcrdma.h&gt;
|
 #include &lt;uapi/linux/ethtool.h&gt;
|
 #include &lt;uapi/linux/ethtool_netlink.h&gt;
|
 #include &lt;uapi/linux/mdio.h&gt;
|
 #include &lt;uapi/linux/mii.h&gt;
)

@depends on i@
expression list args;
@@

(
- bitmap_zero(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_zero(args)
|
- bitmap_copy(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_copy(args)
|
- bitmap_and(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_and(args)
|
- bitmap_or(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_or(args)
|
- bitmap_empty(args, ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_empty(args)
|
- bitmap_andnot(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_andnot(args)
|
- bitmap_equal(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_equal(args)
|
- bitmap_intersects(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_intersects(args)
|
- bitmap_subset(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_subset(args)
)

Add missing linux/mii.h include to mellanox. -DaveM

Signed-off-by: Sean Anderson &lt;sean.anderson@seco.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: be compatible with masters which unregister on shutdown</title>
<updated>2021-09-19T11:08:37Z</updated>
<author>
<name>Vladimir Oltean</name>
</author>
<published>2021-09-17T13:34:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=46baae56e1001a771a5d132aa883cb5605013ae2'/>
<id>urn:sha1:46baae56e1001a771a5d132aa883cb5605013ae2</id>
<content type='text'>
Since commit 2f1e8ea726e9 ("net: dsa: link interfaces with the DSA
master to get rid of lockdep warnings"), DSA gained a requirement which
it did not fulfill, which is to unlink itself from the DSA master at
shutdown time.

Since the hellcreek driver was introduced after the bad commit, it has
never worked with DSA masters which decide to unregister their
net_device on shutdown, effectively hanging the reboot process.

Hellcreek is a platform device driver, so we probably cannot have the
oddities of -&gt;shutdown and -&gt;remove getting both called for the exact
same struct device. But to be in line with the pattern from the other
device drivers which are on slow buses, implement the same "if this then
not that" pattern of either running the -&gt;shutdown or the -&gt;remove hook.
The driver's current -&gt;remove implementation makes that very easy
because it already zeroes out its device_drvdata on -&gt;remove.

Fixes: e4b27ebc780f ("net: dsa: Add DSA driver for Hirschmann Hellcreek switches")
Link: https://lore.kernel.org/netdev/20210909095324.12978-1-LinoSanfilippo@gmx.de/
Reported-by: Lino Sanfilippo &lt;LinoSanfilippo@gmx.de&gt;
Signed-off-by: Vladimir Oltean &lt;vladimir.oltean@nxp.com&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Acked-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net</title>
<updated>2021-08-27T00:57:57Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2021-08-26T20:45:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=97c78d0af55fff206947a5f2b85b690b5acf28ce'/>
<id>urn:sha1:97c78d0af55fff206947a5f2b85b690b5acf28ce</id>
<content type='text'>
drivers/net/wwan/mhi_wwan_mbim.c - drop the extra arg.

Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: Adjust schedule look ahead window</title>
<updated>2021-08-26T09:26:06Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-08-25T13:58:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b7658ed35a5f5900f0f658e375f366513f3eb781'/>
<id>urn:sha1:b7658ed35a5f5900f0f658e375f366513f3eb781</id>
<content type='text'>
Traffic schedules can only be started up to eight seconds within the
future. Therefore, the driver periodically checks every two seconds whether the
admin base time provided by the user is inside that window. If so the schedule
is started. Otherwise the check is deferred.

However, according to the programming manual the look ahead window size should
be four - not eight - seconds. By using the proposed value of four seconds
starting a schedule at a specified admin base time actually works as expected.

Fixes: 24dfc6eb39b2 ("net: dsa: hellcreek: Add TAPRIO offloading support")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: Fix incorrect setting of GCL</title>
<updated>2021-08-26T09:26:05Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-08-25T13:58:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a7db5ed8632c88c029254d5d74765d52614af3fd'/>
<id>urn:sha1:a7db5ed8632c88c029254d5d74765d52614af3fd</id>
<content type='text'>
Currently the gate control list which is programmed into the hardware is
incorrect resulting in wrong traffic schedules. The problem is the loop
variables are incremented before they are referenced. Therefore, move the
increment to the end of the loop.

Fixes: 24dfc6eb39b2 ("net: dsa: hellcreek: Add TAPRIO offloading support")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: dsa: let drivers state that they need VLAN filtering while standalone</title>
<updated>2021-08-24T08:30:58Z</updated>
<author>
<name>Vladimir Oltean</name>
</author>
<published>2021-08-23T21:22:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=58adf9dcb15b99f047e80e10c85fb51ed3c88215'/>
<id>urn:sha1:58adf9dcb15b99f047e80e10c85fb51ed3c88215</id>
<content type='text'>
As explained in commit e358bef7c392 ("net: dsa: Give drivers the chance
to veto certain upper devices"), the hellcreek driver uses some tricks
to comply with the network stack expectations: it enforces port
separation in standalone mode using VLANs. For untagged traffic,
bridging between ports is prevented by using different PVIDs, and for
VLAN-tagged traffic, it never accepts 8021q uppers with the same VID on
two ports, so packets with one VLAN cannot leak from one port to another.

That is almost fine*, and has worked because hellcreek relied on an
implicit behavior of the DSA core that was changed by the previous
patch: the standalone ports declare the 'rx-vlan-filter' feature as 'on
[fixed]'. Since most of the DSA drivers are actually VLAN-unaware in
standalone mode, that feature was actually incorrectly reflecting the
hardware/driver state, so there was a desire to fix it. This leaves the
hellcreek driver in a situation where it has to explicitly request this
behavior from the DSA framework.

We configure the ports as follows:

- Standalone: 'rx-vlan-filter' is on. An 8021q upper on top of a
  standalone hellcreek port will go through dsa_slave_vlan_rx_add_vid
  and will add a VLAN to the hardware tables, giving the driver the
  opportunity to refuse it through .port_prechangeupper.

- Bridged with vlan_filtering=0: 'rx-vlan-filter' is off. An 8021q upper
  on top of a bridged hellcreek port will not go through
  dsa_slave_vlan_rx_add_vid, because there will not be any attempt to
  offload this VLAN. The driver already disables VLAN awareness, so that
  upper should receive the traffic it needs.

- Bridged with vlan_filtering=1: 'rx-vlan-filter' is on. An 8021q upper
  on top of a bridged hellcreek port will call dsa_slave_vlan_rx_add_vid,
  and can again be vetoed through .port_prechangeupper.

*It is not actually completely fine, because if I follow through
correctly, we can have the following situation:

ip link add br0 type bridge vlan_filtering 0
ip link set lan0 master br0 # lan0 now becomes VLAN-unaware
ip link set lan0 nomaster # lan0 fails to become VLAN-aware again, therefore breaking isolation

This patch fixes that corner case by extending the DSA core logic, based
on this requested attribute, to change the VLAN awareness state of the
switch (port) when it leaves the bridge.

Signed-off-by: Vladimir Oltean &lt;vladimir.oltean@nxp.com&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Acked-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
