Traduit de English par IA ·
Sur la partie radio, il a en partie raison. Contiki-NG prend en charge le multicast IPv6 pour les réseaux RPL : deux moteurs, SMRF et MPL. On l’active à la compilation dans le project-conf.h des nœuds et dans celui du border router :
/* every node and the border router */
#define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_MPL
/* for SMRF instead you also need storing mode with multicast: */
/* #define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_SMRF */
/* #define RPL_CONF_MOP RPL_MOP_STORING_MULTICAST */
Là où il a raison, c’est que le rpl-border-router standard ne transmet pas dans le maillage le multicast provenant du réseau externe. Le multicast doit donc être émis depuis le border router lui-même : un petit processus sur cette machine qui, sur commande de Hermetry, envoie un datagramme MPL vers un groupe auquel les nœuds ont adhéré. Cela implique de reflasher les 30 nœuds avec le multicast activé, ce qui, dans une installation en chambre froide, nécessite une intervention sur site.Honnêtement, pour 30 nœuds, je me passerais du multicast. Faites boucler le border router sur les 30 adresses et envoyez en unicast avec une nouvelle tentative. 30 petits paquets sur un maillage, c’est peu de chose : c’est terminé en quelques secondes, et chaque nœud acquitte, donc vous savez qui a manqué le message. Pas de reflashage.Ensuite, dans Hermetry : ajoutez une commande comme sampling.set avec un paramètre period_s dans le profil de la passerelle, répondez-y depuis ce processus une fois que tous les nœuds ont acquitté, et placez deux boutons sur le tableau de bord QA. Faites remonter la période courante de chaque nœud en tant qu’attribut client, afin que QA puisse vérifier que la modification a bien été prise en compte.
Partly right on the radio half. Contiki-NG does have IPv6 multicast for RPL networks: two engines, SMRF and MPL. You turn one on at build time in the nodes’ project-conf.h and in the border router’s:
/* every node and the border router */
#define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_MPL
/* for SMRF instead you also need storing mode with multicast: */
/* #define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_SMRF */
/* #define RPL_CONF_MOP RPL_MOP_STORING_MULTICAST */
Where he’s right is that the stock rpl-border-router does not forward multicast arriving from the outside network into the mesh. So the multicast has to originate on the border router itself: a small process on that box that, on a command from Hermetry, sends one MPL datagram to a group the nodes joined. It means reflashing all 30 nodes with multicast enabled, which on a cold store install is a site visit.
Honestly, for 30 nodes I’d skip multicast. Have the border router loop over the 30 addresses and send unicast with a retry. 30 small packets on a mesh is nothing, it finishes in seconds, and every node acks so you know who missed it. No reflash.
Then in Hermetry: add a command like sampling.set with a period_s parameter on the gateway’s profile, answer it from that process once all nodes acked, and put two buttons on the QA dashboard. Have the nodes report their current period as a client attribute so QA can see it took.

