Visualizza e gestisci i dati di rete con l'interfaccia a riga di comando OT

Visualizza l'origine su GitHub

I dati di rete Thread contengono informazioni sui router di confine e su altri server disponibili nella rete Thread. I router di confine e i dispositivi che offrono servizi registrano le loro informazioni con il leader. Il Leader raccoglie e struttura queste informazioni all'interno dei dati della rete Thread e le distribuisce a tutti i dispositivi nella rete Thread.

I router di confine possono registrare i prefissi assegnati alla rete Thread e i prefissi per i quali offrono route. I Servizi possono registrare qualsiasi informazione pertinente al servizio stesso.

Le informazioni sul router e sui servizi di confine possono essere stabili o temporanee. I dati di rete Thread stabile sono distribuiti a tutti i dispositivi, inclusi i dispositivi SYD (Sleepy End Devices). I dati di rete temporanei vengono distribuiti a tutti i nodi tranne gli SED.

Comandi dati di rete

Per un elenco di comandi netdata, digita help:

netdata help
help
full
length
maxlength
publish
register
show
steeringdata
unpublish
Done

Comandi full

I comandi full segnalano lo stato del flag o sono simili al monitoraggio flag se il callback "net data full" è stato richiamato.

Questo comando richiede OPENThread_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL.

Comandi length e maxlength

Il comando length recupera la lunghezza attuale dei dati di rete Thread, indicata come numero di byte. I comandi maxlength ottengono la lunghezza massima osservata o reimposta la lunghezza massima monitorata.

Comandi publish

L'editore dei dati di rete fornisce meccanismi per limitare il numero di voci simili di servizio e prefisso (prefisso o rete esterna) nei dati di rete Thread monitorando i dati di rete e gestendo quando aggiungere o rimuovere le voci.

Il publisher richiede OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE.

Modulo: rete e configurazione del prefisso

  1. Genera nuova configurazione di rete.

    dataset init new
    Done
    
  2. Visualizza la configurazione di rete.

    dataset
    Active Timestamp: 1
    Channel: 13
    Channel Mask: 0x07fff800
    Ext PAN ID: d63e8e3e495ebbc3
    Mesh Local Prefix: fd3d:b50b:f96d:722d::/64
    Network Key: dfd34f0f05cad978ec4e32b0413038ff
    Network Name: OpenThread-8f28
    PAN ID: 0x8f28
    PSKc: c23a76e98f1a6483639b1ac1271e2e27
    Security Policy: 0, onrcb
    Done
    
  3. Esegui il commit del nuovo set di dati nel set di dati operativi attivi in uno spazio di archiviazione non volatile.

    dataset commit active
    Done
    
  4. Attivare l'interfaccia Thread

    ifconfig up
    Done
    thread start
    Done
    
  5. Visualizza gli indirizzi IPv6 assegnati all'interfaccia Thread.

    ipaddr
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    
  6. Registra un prefisso IPv6 assegnato alla rete Thread.

    prefix add fd00:dead:beef:cafe::/64 paros med
    Done
    netdata register
    Done
    
  7. Visualizza i dati di rete Thread.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    fd49:7770:7fc5:0::/64 s med 4000
    Services:
    44970 5d c000 s 4000
    44970 01 9a04b000000e10 s 4000
    Done
    

    I prefissi e le route includono le mappature degli argomenti e il valore RLOC.

    I record di servizio includono valori otServiceConfig, inclusi mEnterpriseNumber, mServiceData, otServerConfig::mServerData e s per indicare otServerConfig::mStable. RLOC viene aggiunto anche alla fine del record.

  8. Visualizza la lunghezza attuale, in numero di byte, dei dati di rete Thread Partition.

    netdata length
    23
    Done
    
  9. Visualizza gli indirizzi IPv6 assegnati all'interfaccia Thread, incluso il prefisso aggiunto.

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

Collega a rete esistente

È necessaria solo la chiave di rete per collegare un dispositivo a una rete Thread.

Sebbene non sia necessario, specificare il canale evita la necessità di cercare su più canali, migliorando sia la latenza che l'efficienza del processo di collegamento.

Dopo che il dispositivo si è collegato correttamente a una rete Thread, il dispositivo recupera il set di dati operativo attivo completo.

  1. Creare un set di dati operativo parziale.

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. Attiva l'interfaccia Thread.

    ifconfig up
    Done
    thread start
    Done
    
  3. Dopo il collegamento alla rete esistente, visualizza i dati di rete Thread.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. Visualizza la lunghezza attuale, in numero di byte, dei dati di rete Thread Partition.

    netdata length
    23
    Done
    
  5. Visualizza gli indirizzi IPv6 assegnati all'interfaccia Thread.

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

Debug e diagnostica

I dati di rete hanno una dimensione limitata di 254 byte. Se i router di confine continuano ad aggiungere voci (ad esempio prefissi, route o voci di servizio) ai dati di rete, possono essere completati. In questo caso, le nuove richieste del router di confine per aggiungere nuovi elementi verranno rifiutate o ignorate dal leader. Il leader non segnala necessariamente il rifiuto al router di confine, pertanto quest'ultimo potrebbe non comprendere immediatamente che i dati di rete si stanno riempiendo. Tuttavia, è disponibile un metodo per rilevare quando i dati di rete sono esauriti.

Il metodo di rilevamento, implementato sia sui router di confine che sul leader, utilizza un meccanismo dell'API di callback e consente agli utenti di essere avvisati quando i dati di rete sono completi. Il callback può essere utilizzato per eseguire azioni, come rimuovere i prefissi inattivi o le voci di servizio. I comandi netdata full vengono utilizzati per il flag che monitora se è stato richiamato il callback "net data full". Questi comandi possono segnalare lo stato del flag o reimpostarlo.

Per i tipici casi d'uso di Thread, è improbabile che i dati di rete siano completi, anche nello scenario in cui sono presenti molti router di confine e stanno aggiungendo tutti i prefissi di route.

È tecnicamente possibile che i dati di rete si riempiano, ma questo è spesso dovuto a una configurazione errata o a un problema sul router di confine. I comandi netdata length e netdata maxlength consentono di eseguire il debug degli errori di rete completi. length riceve la lunghezza attuale dei dati di rete, indicata come byte, mentre maxlength riceve la lunghezza massima osservata e può anche reimpostare la lunghezza massima monitorata.