diff options
| author | Krzysztof Królczyk <[email protected]> | 2024-11-01 11:51:11 +0100 |
|---|---|---|
| committer | Krzysztof Królczyk <[email protected]> | 2024-11-01 19:02:10 +0100 |
| commit | e93ac532aca2c699f19c43a080f2d8243e562a9a (patch) | |
| tree | 3ddb68bace0d5bbe4a602683c32d27e923da597e /embassy-stm32/src/eth | |
| parent | 10a9766046f7f8a2cf1c7b91209432ee15ee22a9 (diff) | |
feat/stm32: disable multicast filtering on eth v2
Initially, this was feature-gated, but has been requested
to be changed to be unconditional, see PR 3488 for reasons.
When filtering is enabled, it intercepts and drops silently
ipv6 packets, possibly somewhere around
smoltcp::iface::interface::ipv6 lines 36, 44 in current head
sha e9b66eadaeacef758ebc4a12378f8d2162144cf4
With filtering disabled (this patch), packets are received
and communication over ipv6 is possible, neighbor discovery works.
related: #2496
Signed-off-by: Krzysztof Królczyk <[email protected]>
Diffstat (limited to 'embassy-stm32/src/eth')
| -rw-r--r-- | embassy-stm32/src/eth/v2/mod.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/embassy-stm32/src/eth/v2/mod.rs b/embassy-stm32/src/eth/v2/mod.rs index b26f08cd9..9dd7f7d95 100644 --- a/embassy-stm32/src/eth/v2/mod.rs +++ b/embassy-stm32/src/eth/v2/mod.rs | |||
| @@ -192,6 +192,9 @@ impl<'d, T: Instance, P: PHY> Ethernet<'d, T, P> { | |||
| 192 | // TODO: Carrier sense ? ECRSFD | 192 | // TODO: Carrier sense ? ECRSFD |
| 193 | }); | 193 | }); |
| 194 | 194 | ||
| 195 | // Disable multicast filter | ||
| 196 | mac.macpfr().modify(|w| w.set_pm(true)); | ||
| 197 | |||
| 195 | // Note: Writing to LR triggers synchronisation of both LR and HR into the MAC core, | 198 | // Note: Writing to LR triggers synchronisation of both LR and HR into the MAC core, |
| 196 | // so the LR write must happen after the HR write. | 199 | // so the LR write must happen after the HR write. |
| 197 | mac.maca0hr() | 200 | mac.maca0hr() |
