Google is committed to advancing racial equity for Black communities. See how.

Supervisione dei bambini

Visualizza sorgente su GitHub

Per fornire un meccanismo efficiente dal punto di vista energetico per un dispositivo SED (Sleepy End Device) per verificare che sia ancora connesso al router principale (elencato nella tabella figlio del router principale), abilitare la funzione Supervisione bambino.

La specifica del thread richiede che un SED esegua periodicamente uno scambio di richieste e risposte di aggiornamento figlio MLE con il suo router principale per verificare la connettività. Child Supervision è una soluzione alternativa per la verifica della connettività del router SED che pone l'onere della trasmissione dei messaggi sul router genitore invece che 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 router principale non trasmette al suo SED figlio all'interno di OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL , il router principale accoda e invia un messaggio di supervisione figlio al SED figlio. Il messaggio Child Supervision è un frame MAC contenente le seguenti informazioni:

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

Per impostazione predefinita, un'intestazione MAC contiene una richiesta ACK 802.15.4. Per disabilitare questa richiesta nel messaggio Child Supervision, impostare il parametro OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST su 1.

Sul bambino

Se un SED non sente dal suo router principale all'interno di OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT , presume di aver perso la connessione al router principale e avvia il processo di collegamento MLE per ricollegarsi al router principale.

Come abilitare

Questa funzione è disabilitata per impostazione predefinita.

Per definire

Per abilitare Child Supervision, definire OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE come 1 nel file openthread/src/core/config/child_supervision.h , prima di creare OpenThread :

#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif

Per opzione

In alternativa, usa l'opzione di compilazione -DOT_CHILD_SUPERVISION=ON durante la creazione di OpenThread :

./script/build -DOT_CHILD_SUPERVISION=ON

Parametri

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

Parametri
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
Valore predefinito
129 secondi
Descrizione
Specifica l'intervallo di supervisione in secondi utilizzato dal genitore. Impostare a 0 per disabilitare il processo di supervisione sul genitore.
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT
Valore predefinito
190 secondi
Descrizione
Specifica l'intervallo di timeout del controllo di supervisione in secondi utilizzato da un dispositivo in stato figlio. Impostare su 0 per disabilitare il processo di controllo della supervisione sul bambino.
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST
Valore predefinito
0 (richiesta ACK abilitata)
Descrizione
Impostare su 1 per cancellare / disabilitare la richiesta ACK 802.15.4 nell'intestazione MAC di un messaggio di supervisione.

API

Utilizza l' API Child Supervision per gestire la supervisione e controllare gli intervalli di timeout direttamente nella tua applicazione OpenThread.

CLI

Non ci sono comandi CLI relativi a questa funzione.