diff --git a/docs/acceptance-sacn.md b/docs/acceptance-sacn.md index 66da692..1ad779a 100644 --- a/docs/acceptance-sacn.md +++ b/docs/acceptance-sacn.md @@ -46,14 +46,40 @@ Dass mDNS funktioniert, widerspricht dem nicht: `224.0.0.251` liegt im link-loka `224.0.0.0/24`, den Switches und Access Points per Norm von der IGMP-Filterung ausnehmen und immer fluten. `239.255.0.1` unterliegt dagegen der Filterung. -Anzusehen waeren im UniFi-Setup fuer das IoT-Netz: +**Netzseite in derselben Nacht durchprobiert - ohne Erfolg:** -- WLAN-Einstellungen: "Multicast and Broadcast Control" bzw. "Block LAN to WLAN Multicast - and Broadcast" - ist das aktiv, faellt die Gruppe weg, solange sie nicht ausdruecklich - erlaubt ist. -- Netzwerk-Einstellungen: IGMP Snooping - entweder auf diesem VLAN abschalten (dann wird - geflutet) oder sicherstellen, dass ein Querier laeuft. Snooping ohne Querier ist der - klassische Weg, Multicast unbemerkt verschwinden zu lassen. +| Zustand im UniFi | Multicast kommt an? | +|---|---| +| Snooping aus, Multicast-zu-Unicast aus, kein Blocker (Ausgangslage) | nein | +| Multicast-zu-Unicast an | nein | +| zusaetzlich IGMP-Snooping an, Querier "Aus (Drittanbieter)" | nein | +| zusaetzlich Querier "Primaer/Failover" | nein | +| dasselbe, danach frischer Beitritt der Lampe erzwungen | nein (`multicast: true` gemeldet) | + +Unicast funktionierte in jeder dieser Varianten sofort. Der Multicast- und Broadcast-Blocker +war durchgehend aus, Geraete- und L3-Isolierung ebenfalls. + +**Damit zeigt der Verdacht auf die Lampe.** Wichtig fuer den naechsten Versuch: Das Feld +`sacn.multicast` ist NICHT so aussagekraeftig, wie es aussieht. Es meldet nur, dass +`IP_ADD_MEMBERSHIP` erfolgreich zurueckkam. Die SDK-Funktion, die den Hardware-Filter des +W600 programmiert (`ethernetif_igmp_mac_filter` in +`sdk/Src/Network/lwip2.0.3/netif/ethernetif.c`), steigt jedoch ganz oben mit + +```c +if (netif != tls_get_netif()) + return ERR_OK; +``` + +aus - sie meldet also Erfolg, OHNE den Filter gesetzt zu haben, wenn die Schnittstelle nicht +die vom SDK als aktuell gefuehrte ist. Dann nimmt der Chip die Frames nie an. + +Naechste Schritte, wenn es weitergeht: + +1. Serielle Konsole an eine Lampe haengen und mitlesen, was beim Beitritt passiert. +2. `imr_interface` einmal mit `INADDR_ANY` statt der STA-IP versuchen - das aendert, welches + netif lwIP waehlt, und koennte den Ausstieg oben umgehen. +3. `sacn.multicast` ehrlicher machen: aktuell behauptet es einen Erfolg, den das SDK nur + zurueckmeldet, aber nicht garantiert. Zwei Fehlversuche auf dem Weg dorthin, damit sie niemand wiederholt: