aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32
diff options
context:
space:
mode:
authorKrzysztof Królczyk <[email protected]>2024-11-01 11:51:11 +0100
committerKrzysztof Królczyk <[email protected]>2024-11-01 19:02:10 +0100
commite93ac532aca2c699f19c43a080f2d8243e562a9a (patch)
tree3ddb68bace0d5bbe4a602683c32d27e923da597e /embassy-stm32
parent10a9766046f7f8a2cf1c7b91209432ee15ee22a9 (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')
-rw-r--r--embassy-stm32/src/eth/v2/mod.rs3
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()