8.3. Trasmissione DIO
I nodi RPL trasmettono i DIO utilizzando un timer Trickle [RFC6206]. Un DIO da un mittente con un DAGRank inferiore che non causa alcuna modifica all'insieme dei genitori, al genitore preferito o al Rank del destinatario DOVREBBE essere considerato coerente rispetto al timer Trickle.
I seguenti pacchetti ed eventi DEVONO essere considerati incoerenze rispetto al timer Trickle e causare il reset del timer Trickle:
o Quando un nodo rileva un'incoerenza durante l'inoltro di un pacchetto, come dettagliato nella Sezione 11.2.
o Quando un nodo riceve un messaggio DIS multicast senza un'opzione Solicited Information, a meno che un flag DIS non restringa questo comportamento.
o Quando un nodo riceve un DIS multicast con un'opzione Solicited Information e il nodo corrisponde a tutti i predicati nell'opzione Solicited Information, a meno che un flag DIS non restringa questo comportamento.
o Quando un nodo si unisce a una nuova versione DODAG (ad esempio aggiornando il suo DODAGVersionNumber, unendosi a una nuova istanza RPL, ecc.).
Si noti che questo elenco non è esaustivo e un'implementazione PUÒ considerare altri messaggi o eventi come incoerenze.
Un nodo NON DOVREBBE resettare il suo timer Trickle DIO in risposta ai messaggi DIS unicast. Quando un nodo riceve un DIS unicast senza un'opzione Solicited Information, DEVE inviare un DIO unicast al mittente in risposta. Questo DIO DEVE includere un'opzione DODAG Configuration. Quando un nodo riceve un messaggio DIS unicast con un'opzione Solicited Information e corrisponde ai predicati di quell'opzione Solicited Information, DEVE inviare un DIO unicast al mittente in risposta. Questo DIO unicast DEVE includere un'opzione DODAG Configuration. Pertanto, un nodo PUÒ trasmettere un messaggio DIS unicast a un potenziale genitore DODAG al fine di sondare la Configuration DODAG e altri parametri.
8.3.1. Parametri Trickle
I parametri di configurazione del timer Trickle sono specificati come segue:
Imin: appreso dal messaggio DIO come (2^DIOIntervalMin) ms. Il valore predefinito di DIOIntervalMin è DEFAULT_DIO_INTERVAL_MIN.
Imax: appreso dal messaggio DIO come DIOIntervalDoublings. Il valore predefinito di DIOIntervalDoublings è DEFAULT_DIO_INTERVAL_DOUBLINGS.
k: appreso dal messaggio DIO come DIORedundancyConstant. Il valore predefinito di DIORedundancyConstant è DEFAULT_DIO_REDUNDANCY_CONSTANT. In RPL, quando k ha il valore di 0x00, questo deve essere trattato come una costante di ridondanza di infinito in RPL, cioè Trickle non sopprime mai i messaggi.