Supervisione bambini

Visualizza l'origine su GitHub

Per fornire un meccanismo a basso consumo energetico per un dispositivo finale in stato di sospensione (SED) per verificare che sia ancora connesso al suo genitore (elencato nella tabella dei figli del genitore), attiva la funzionalità di supervisione dei figli.

La specifica Thread richiede che un SED esegua periodicamente uno scambio di richieste e risposte di aggiornamento dei figli MLE con il suo genitore per verificare la connettività. La supervisione dei figli è una soluzione alternativa per la verifica della connettività SED-genitore che sposta l'onere della trasmissione dei messaggi sul genitore anziché sul SED con vincoli energetici.

Come funziona

Questa funzionalità funziona in due modi, a seconda del tipo di nodo e dei parametri configurati:

Sul genitore

Se un genitore non trasmette al SED figlio entro il OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL, il genitore mette in coda e invia un messaggio di supervisione dei figli al SED figlio. Il messaggio di supervisione dei figli è un frame MAC che contiene le seguenti informazioni:

  • L'RLOC16 del SED come destinazione nell'intestazione MAC.
  • Un payload vuoto.

Per impostazione predefinita, un'intestazione MAC contiene una richiesta ACK 802.15.4. Per disattivare questa richiesta nel messaggio di supervisione dei figli, imposta il OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST parametro su 1.

Sul figlio

Se un SED non riceve notizie dal suo genitore entro il OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT, presuppone di aver perso la connessione con il genitore e avvia la procedura di collegamento MLE Attach per ricollegarsi alla rete.

Come attivare

Questa funzionalità è disattivata per impostazione predefinita.

Per definizione

Per attivare la supervisione dei figli, definisci OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE come 1 nel openthread/src/core/config/child_supervision.h file, prima di creare OpenThread:

#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif

Per opzione

In alternativa, utilizza l'opzione di build -DOT_CHILD_SUPERVISION=ON quando crei OpenThread:

./script/build -DOT_CHILD_SUPERVISION=ON

Parametri

Utilizza i seguenti parametri in openthread/src/core/config/child_supervision.h per personalizzare questa funzionalità:

Parametri
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
Valore predefinito
129 secondi
Descrizione
Specifica l'intervallo di supervisione in secondi utilizzato dal genitore. Imposta su 0 per disattivare la procedura di supervisione sul genitore.
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT
Valore predefinito
190 secondi
Descrizione
Specifica l'intervallo di timeout di controllo della supervisione in secondi utilizzato da un dispositivo in stato figlio. Imposta su 0 per disattivare la procedura di controllo della supervisione sul figlio.
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST
Valore predefinito
0 (richiesta ACK attivata)
Descrizione
Imposta su 1 per cancellare/disattivare la richiesta ACK 802.15.4 nell'intestazione MAC di un messaggio di supervisione.

API

Utilizza l'API di supervisione dei figli per gestire gli intervalli di supervisione e di timeout di controllo direttamente nella tua applicazione OpenThread.

CLI

Non sono disponibili comandi dell'interfaccia a riga di comando correlati a questa funzionalità.