Passa al contenuto principale

14. Linee Guida per le Funzioni Obiettivo

Una Funzione Obiettivo (OF), in combinazione con metriche e vincoli di instradamento, consente la selezione di un DODAG a cui unirsi e di un numero di pari in quel DODAG come genitori. L'OF viene utilizzata per calcolare un elenco ordinato di genitori. L'OF è anche responsabile di calcolare il Rango del dispositivo all'interno della versione DODAG.

La Funzione Obiettivo è indicata nel messaggio DIO utilizzando un Objective Code Point (OCP), e indica il metodo che deve essere utilizzato per costruire il DODAG. Gli Objective Code Points sono specificati in [RFC6552] e nelle relative specifiche di accompagnamento.

14.1. Comportamento della Funzione Obiettivo

Si prevede che la maggior parte delle Funzioni Obiettivo segua lo stesso comportamento astratto in un nodo:

  • La selezione del genitore viene attivata ogni volta che un evento indica che un'informazione di potenziale hop successivo è aggiornata. Ciò potrebbe accadere alla ricezione di un messaggio DIO, allo scadere di un timer, se tutti i genitori DODAG non sono disponibili o un trigger che indica che lo stato di un vicino candidato è cambiato.

  • Un'OF scansiona tutte le interfacce sul nodo. Sebbene possa esserci tipicamente solo un'interfaccia nella maggior parte degli scenari applicativi, potrebbero essercene più di una e un'interfaccia potrebbe essere configurata per essere utilizzabile o meno per il funzionamento RPL. Un'interfaccia può anche essere configurata con una preferenza o appresa dinamicamente per essere migliore di un'altra da alcune euristiche che potrebbero dipendere dal livello di collegamento e sono fuori dall'ambito di questa specifica. Infine, un'interfaccia potrebbe o meno corrispondere a un criterio richiesto per una Funzione Obiettivo, ad esempio, un grado di sicurezza. Di conseguenza, alcune interfacce potrebbero essere completamente escluse dal calcolo, ad esempio, se tali interfacce non possono soddisfare alcuni vincoli annunciati, mentre altre potrebbero essere più o meno preferite.

  • Un'OF scansiona tutti i vicini candidati sulle possibili interfacce per verificare se possono agire come router per un DODAG. Potrebbero essercene molti e un vicino candidato potrebbe dover superare alcuni test di convalida prima di poter essere utilizzato. In particolare, alcuni livelli di collegamento richiedono esperienza sull'attività con un router per abilitare il router come hop successivo.

  • Un'OF calcola il Rango di un nodo per il confronto aggiungendo al Rango del candidato un valore che rappresenta le posizioni relative del nodo e del candidato nella versione DODAG.

    • L'aumento di Rango deve essere almeno MinHopRankIncrease.

    • Per mantenere allineati l'evitamento dei loop e l'ottimizzazione delle metriche, l'aumento di Rango dovrebbe riflettere qualsiasi aumento del valore della metrica. Ad esempio, con una metrica puramente additiva, come ETX, l'aumento di Rango può essere reso proporzionale all'aumento della metrica.

    • I vicini candidati che causerebbero un aumento del Rango del nodo non sono considerati per la selezione del genitore.

  • I vicini candidati che annunciano un'OF incompatibile con l'insieme di OF specificate dalle funzioni di politica vengono ignorati.

  • Mentre scansiona tutti i vicini candidati, l'OF mantiene il miglior genitore corrente e confronta le sue capacità con il vicino candidato corrente. L'OF definisce una serie di test che sono critici per raggiungere l'obiettivo. Un test tra i router determina una relazione d'ordine.

    • Se i router sono uguali per quella relazione, viene tentato il test successivo tra i router,

    • Altrimenti il migliore dei due router diventa il miglior genitore corrente e la scansione continua con il vicino candidato successivo.

    • Alcune OF possono includere un test per confrontare i Ranghi che risulterebbero se il nodo si unisse a uno dei due router.

  • Quando la scansione è completa, viene eletto il genitore preferito e il Rango del nodo viene calcolato come il Rango del genitore preferito più il passo di Rango con quel genitore.

  • Potrebbero essere necessari altri cicli di scansione per eleggere genitori alternativi. Nei cicli successivi:

    • I vicini candidati che non sono nello stesso DODAG vengono ignorati.

    • I vicini candidati che hanno un Rango superiore al nodo vengono ignorati.

    • I vicini candidati di Rango uguale al nodo vengono ignorati per la selezione del genitore.

    • I vicini candidati di Rango inferiore al nodo sono preferiti.