Enrutador / Líder
Este módulo incluye funciones para Thread Routers y Leaders.
Resumen
Enumeraciones | |
---|---|
otCacheEntryState | enumeración Esta enumeración define el estado de entrada de la caché de EID. |
otNeighborTableEvent { | enumeración Esta enumeración define las constantes utilizadas en otNeighborTableCallback para indicar si se está agregando o eliminando un niño o un vecino del enrutador. |
Typedefs | |
---|---|
otCacheEntryInfo | typedefstruct otCacheEntryInfo Esta estructura representa una entrada de caché EID. |
otCacheEntryIterator | typedefstruct otCacheEntryIterator Este tipo representa un iterador que se utiliza para recorrer las entradas de la tabla de caché de EID. |
otCacheEntryState | typedefenum otCacheEntryState Esta enumeración define el estado de entrada de la caché de EID. |
otChildIp6AddressIterator | typedefuint16_t Se utiliza para iterar a través de direcciones IPv6 de una entrada de Thread Child. |
otNeighborTableCallback )(otNeighborTableEvent aEvent, const otNeighborTableEntryInfo *aEntryInfo) | typedefvoid(* Este puntero de función se llama para notificar que se está agregando o quitando un niño o un vecino de enrutador de la tabla de vecinos. |
Funciones | |
---|---|
otThreadBecomeLeader ( otInstance *aInstance) | Conviértete en líder y comienza una nueva partición. |
otThreadBecomeRouter ( otInstance *aInstance) | Intenta convertirte en un enrutador. |
otThreadGetChildInfoById ( otInstance *aInstance, uint16_t aChildId, otChildInfo *aChildInfo) | La función retiene la información de diagnóstico de un niño adjunto por su ID de niño o RLOC16. |
otThreadGetChildInfoByIndex ( otInstance *aInstance, uint16_t aChildIndex, otChildInfo *aChildInfo) | La función retiene la información de diagnóstico de un niño adjunto mediante el índice de tabla interno. |
otThreadGetChildNextIp6Address ( otInstance *aInstance, uint16_t aChildIndex, otChildIp6AddressIterator *aIterator, otIp6Address *aAddress) | Esta función obtiene la siguiente dirección IPv6 (usando un iterador) para un niño dado. |
otThreadGetContextIdReuseDelay ( otInstance *aInstance) | uint32_t Obtenga el parámetro CONTEXT_ID_REUSE_DELAY usado en el rol de líder. |
otThreadGetJoinerUdpPort ( otInstance *aInstance) | uint16_t Obtenga el puerto UDP de Joiner. |
otThreadGetLocalLeaderWeight ( otInstance *aInstance) | uint8_t Obtenga el peso de líder de subproceso que se utiliza al operar en el rol de líder. |
otThreadGetMaxAllowedChildren ( otInstance *aInstance) | uint16_t Obtenga el número máximo de niños permitido actualmente. |
otThreadGetMaxChildIpAddresses ( otInstance *aInstance) | uint8_t Esta función obtiene el número máximo de direcciones IP que cada niño MTD puede registrar con este dispositivo como padre. |
otThreadGetMaxRouterId ( otInstance *aInstance) | uint8_t La función devuelve el ID de enrutador máximo permitido. |
otThreadGetNetworkIdTimeout ( otInstance *aInstance) | uint8_t Obtenga el parámetro NETWORK_ID_TIMEOUT utilizado en la función de enrutador. |
otThreadGetNextCacheEntry ( otInstance *aInstance, otCacheEntryInfo *aEntryInfo, otCacheEntryIterator *aIterator) | Esta función obtiene la siguiente entrada de caché de EID (usando un iterador). |
otThreadGetParentPriority ( otInstance *aInstance) | int8_t Obtenga la prioridad de padre asignada. |
otThreadGetPreferredLeaderPartitionId ( otInstance *aInstance) | uint32_t Obtenga el Id. De partición de líder de subproceso preferido que se usa cuando se trabaja en el rol de líder. |
otThreadGetPskc ( otInstance *aInstance) | const otPskc * Obtenga el hilo PSKc. |
otThreadGetRouterDowngradeThreshold ( otInstance *aInstance) | uint8_t Obtenga el parámetro ROUTER_DOWNGRADE_THRESHOLD utilizado en el rol de enrutador. |
otThreadGetRouterIdSequence ( otInstance *aInstance) | uint8_t Obtenga la secuencia de ID del enrutador actual. |
otThreadGetRouterInfo ( otInstance *aInstance, uint16_t aRouterId, otRouterInfo *aRouterInfo) | La función conserva la información de diagnóstico de un enrutador de subprocesos determinado. |
otThreadGetRouterSelectionJitter ( otInstance *aInstance) | uint8_t Obtenga el parámetro ROUTER_SELECTION_JITTER utilizado en el rol REED / Router. |
otThreadGetRouterUpgradeThreshold ( otInstance *aInstance) | uint8_t Obtenga el parámetro ROUTER_UPGRADE_THRESHOLD utilizado en el rol REED. |
otThreadIsRouterEligible ( otInstance *aInstance) | bool Este método indica si el dispositivo es apto para el enrutador. |
otThreadRegisterNeighborTableCallback ( otInstance *aInstance, otNeighborTableCallback aCallback) | void Esta función registra una función de devolución de llamada de tabla vecina. |
otThreadReleaseRouterId ( otInstance *aInstance, uint8_t aRouterId) | Libera una ID de enrutador que haya sido asignada por el dispositivo en el rol de líder. |
otThreadSetContextIdReuseDelay ( otInstance *aInstance, uint32_t aDelay) | void Establezca el parámetro CONTEXT_ID_REUSE_DELAY utilizado en el rol de líder. |
otThreadSetJoinerUdpPort ( otInstance *aInstance, uint16_t aJoinerUdpPort) | Configure el puerto UDP de Joiner. |
otThreadSetLocalLeaderWeight ( otInstance *aInstance, uint8_t aWeight) | void Establezca el peso de líder de subproceso que se utiliza al operar en el rol de líder. |
otThreadSetMaxAllowedChildren ( otInstance *aInstance, uint16_t aMaxChildren) | Establece la cantidad máxima de niños permitidos actualmente. |
otThreadSetMaxChildIpAddresses ( otInstance *aInstance, uint8_t aMaxIpAddresses) | Esta función establece / restaura el número máximo de direcciones IP que cada niño MTD puede registrar con este dispositivo como padre. |
otThreadSetNetworkIdTimeout ( otInstance *aInstance, uint8_t aTimeout) | void Establezca el parámetro NETWORK_ID_TIMEOUT utilizado en el rol de líder. |
otThreadSetParentPriority ( otInstance *aInstance, int8_t aParentPriority) | Establezca la prioridad de los padres. |
otThreadSetPreferredLeaderPartitionId ( otInstance *aInstance, uint32_t aPartitionId) | void Establezca el Id. De partición de líder de subproceso preferido que se utiliza al operar en el rol de líder. |
otThreadSetPreferredRouterId ( otInstance *aInstance, uint8_t aRouterId) | Establezca el Id. De enrutador preferido. |
otThreadSetPskc ( otInstance *aInstance, const otPskc *aPskc) | Configure el Thread PSKc. |
otThreadSetRouterDowngradeThreshold ( otInstance *aInstance, uint8_t aThreshold) | void Establezca el parámetro ROUTER_DOWNGRADE_THRESHOLD utilizado en el rol de líder. |
otThreadSetRouterEligible ( otInstance *aInstance, bool aEligible) | Esta función establece si el dispositivo es apto para el enrutador. |
otThreadSetRouterSelectionJitter ( otInstance *aInstance, uint8_t aRouterJitter) | void Establezca el parámetro ROUTER_SELECTION_JITTER utilizado en la función REED / Router. |
otThreadSetRouterUpgradeThreshold ( otInstance *aInstance, uint8_t aThreshold) | void Establezca el parámetro ROUTER_UPGRADE_THRESHOLD utilizado en el rol de líder. |
otThreadSetSteeringData ( otInstance *aInstance, const otExtAddress *aExtAddress) | void Establezca los datos de dirección fuera de banda. |
Estructuras | |
---|---|
otCacheEntryInfo | Esta estructura representa una entrada de caché EID. |
otCacheEntryIterator | Este tipo representa un iterador utilizado para iterar a través de las entradas de la tabla de caché de EID. |
otChildInfo | Esta estructura contiene información de diagnóstico para un Thread Child. |
otNeighborTableEntryInfo | Este tipo representa una información de entrada de la tabla vecina (secundaria o enrutador) y se usa como parámetro en la devolución de llamada de la tabla vecina |
Enumeraciones
otCacheEntryState
otCacheEntryState
Esta enumeración define el estado de entrada de la caché de EID.
otNeighborTableEvent
otNeighborTableEvent
Esta enumeración define las constantes utilizadas en otNeighborTableCallback
para indicar si se está agregando o eliminando un niño o un vecino del enrutador.
Typedefs
otCacheEntryInfo
struct otCacheEntryInfo otCacheEntryInfo
Esta estructura representa una entrada de caché EID.
otCacheEntryIterator
struct otCacheEntryIterator otCacheEntryIterator
Este tipo representa un iterador utilizado para iterar a través de las entradas de la tabla de caché de EID.
Para inicializar el iterador y comenzar desde la primera entrada en la tabla de caché, establezca todos sus campos en la estructura en cero (por ejemplo, memset
el iterador en cero).
otCacheEntryState
enum otCacheEntryState otCacheEntryState
Esta enumeración define el estado de entrada de la caché de EID.
otChildIp6AddressIterator
uint16_t otChildIp6AddressIterator
Se utiliza para iterar a través de direcciones IPv6 de una entrada de Thread Child.
otNeighborTableCallback
void(* otNeighborTableCallback)(otNeighborTableEvent aEvent, const otNeighborTableEntryInfo *aEntryInfo)
Este puntero de función se llama para notificar que se está agregando o quitando un niño o un vecino de enrutador de la tabla de vecinos.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Funciones
otThreadBecomeLeader
otError otThreadBecomeLeader( otInstance *aInstance )
Conviértete en líder y comienza una nueva partición.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadBecomeRouter
otError otThreadBecomeRouter( otInstance *aInstance )
Intenta convertirte en un enrutador.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadGetChildInfoById
otError otThreadGetChildInfoById( otInstance *aInstance, uint16_t aChildId, otChildInfo *aChildInfo )
La función retiene la información de diagnóstico de un niño adjunto por su ID de niño o RLOC16.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
otThreadGetChildInfoByIndex
otError otThreadGetChildInfoByIndex( otInstance *aInstance, uint16_t aChildIndex, otChildInfo *aChildInfo )
La función retiene la información de diagnóstico de un niño adjunto mediante el índice de tabla interno.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
otGetMaxAllowedChildren
otThreadGetChildNextIp6Address
otError otThreadGetChildNextIp6Address( otInstance *aInstance, uint16_t aChildIndex, otChildIp6AddressIterator *aIterator, otIp6Address *aAddress )
Esta función obtiene la siguiente dirección IPv6 (usando un iterador) para un niño dado.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||
Valores devueltos |
|
otThreadGetChildInfoByIndex
otThreadGetContextIdReuseDelay
uint32_t otThreadGetContextIdReuseDelay( otInstance *aInstance )
Obtenga el parámetro CONTEXT_ID_REUSE_DELAY usado en el rol de líder.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El valor CONTEXT_ID_REUSE_DELAY. |
otThreadSetContextIdReuseDelay
otThreadGetJoinerUdpPort
uint16_t otThreadGetJoinerUdpPort( otInstance *aInstance )
Obtenga el puerto UDP de Joiner.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El número de puerto UDP de Joiner. |
otThreadSetJoinerUdpPort
otThreadGetLocalLeaderWeight
uint8_t otThreadGetLocalLeaderWeight( otInstance *aInstance )
Obtenga el peso de líder de subproceso que se utiliza al operar en el rol de líder.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El valor de Peso del líder del hilo. |
otThreadSetLeaderWeight
otThreadGetMaxAllowedChildren
uint16_t otThreadGetMaxAllowedChildren( otInstance *aInstance )
Obtenga el número máximo de niños permitido actualmente.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El número máximo de niños permitido actualmente. |
otThreadSetMaxAllowedChildren
otThreadGetMaxChildIpAddresses
uint8_t otThreadGetMaxChildIpAddresses( otInstance *aInstance )
Esta función obtiene el número máximo de direcciones IP que cada niño MTD puede registrar con este dispositivo como padre.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El número máximo de direcciones IP que cada niño MTD puede registrar con este dispositivo como padre. |
otThreadSetMaxChildIpAddresses
otThreadGetMaxRouterId
uint8_t otThreadGetMaxRouterId( otInstance *aInstance )
La función devuelve el ID de enrutador máximo permitido.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El ID de enrutador máximo permitido. |
otThreadGetNetworkIdTimeout
uint8_t otThreadGetNetworkIdTimeout( otInstance *aInstance )
Obtenga el parámetro NETWORK_ID_TIMEOUT utilizado en la función de enrutador.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El valor NETWORK_ID_TIMEOUT. |
otThreadSetNetworkIdTimeout
otThreadGetNextCacheEntry
otError otThreadGetNextCacheEntry( otInstance *aInstance, otCacheEntryInfo *aEntryInfo, otCacheEntryIterator *aIterator )
Esta función obtiene la siguiente entrada de caché de EID (usando un iterador).
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
otThreadGetParentPriority
int8_t otThreadGetParentPriority( otInstance *aInstance )
Obtenga la prioridad de padre asignada.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El valor de prioridad principal asignado, -2 significa no asignado. |
otThreadSetParentPriority
otThreadGetPreferredLeaderPartitionId
uint32_t otThreadGetPreferredLeaderPartitionId( otInstance *aInstance )
Obtenga el Id. De partición de líder de subproceso preferido que se usa cuando se trabaja en el rol de líder.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El valor de Id. De partición de líder de subproceso. |
otThreadGetPskc
const otPskc * otThreadGetPskc( otInstance *aInstance )
Obtenga el hilo PSKc.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | Un puntero a Thread PSKc |
otThreadSetPskc
otThreadGetRouterDowngradeThreshold
uint8_t otThreadGetRouterDowngradeThreshold( otInstance *aInstance )
Obtenga el parámetro ROUTER_DOWNGRADE_THRESHOLD utilizado en el rol de enrutador.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El valor de ROUTER_DOWNGRADE_THRESHOLD. |
otThreadSetRouterDowngradeThreshold
otThreadGetRouterIdSequence
uint8_t otThreadGetRouterIdSequence( otInstance *aInstance )
Obtenga la secuencia de ID del enrutador actual.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | La secuencia de ID del enrutador. |
otThreadGetRouterInfo
otError otThreadGetRouterInfo( otInstance *aInstance, uint16_t aRouterId, otRouterInfo *aRouterInfo )
La función retiene la información de diagnóstico de un enrutador de hilos determinado.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
otThreadGetRouterSelectionJitter
uint8_t otThreadGetRouterSelectionJitter( otInstance *aInstance )
Obtenga el parámetro ROUTER_SELECTION_JITTER utilizado en el rol REED / Router.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El valor de ROUTER_SELECTION_JITTER. |
otThreadSetRouterSelectionJitter
otThreadGetRouterUpgradeThreshold
uint8_t otThreadGetRouterUpgradeThreshold( otInstance *aInstance )
Obtenga el parámetro ROUTER_UPGRADE_THRESHOLD utilizado en el rol REED.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | El valor de ROUTER_UPGRADE_THRESHOLD. |
otThreadSetRouterUpgradeThreshold
otThreadIsRouterEligible
bool otThreadIsRouterEligible( otInstance *aInstance )
Este método indica si el dispositivo es apto para el enrutador.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadRegisterNeighborTableCallback
void otThreadRegisterNeighborTableCallback( otInstance *aInstance, otNeighborTableCallback aCallback )
Esta función registra una función de devolución de llamada de tabla vecina.
La devolución de llamada proporcionada (si no es NULL) se invocará cuando se agregue / elimine una entrada de vecino secundario o de enrutador a / de la tabla de vecinos. Las llamadas posteriores a este método sobrescribirán la devolución de llamada anterior. Tenga en cuenta que esta devolución de llamada se invoca mientras se actualiza la tabla vecina / secundaria y siempre antes de otStateChangedCallback
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otThreadReleaseRouterId
otError otThreadReleaseRouterId( otInstance *aInstance, uint8_t aRouterId )
Libera una ID de enrutador que haya sido asignada por el dispositivo en el rol de líder.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||
Valores devueltos |
|
otThreadSetContextIdReuseDelay
void otThreadSetContextIdReuseDelay( otInstance *aInstance, uint32_t aDelay )
Establezca el parámetro CONTEXT_ID_REUSE_DELAY utilizado en el rol de líder.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otThreadGetContextIdReuseDelay
otThreadSetJoinerUdpPort
otError otThreadSetJoinerUdpPort( otInstance *aInstance, uint16_t aJoinerUdpPort )
Configure el puerto UDP de Joiner.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadGetJoinerUdpPort
otThreadSetLocalLeaderWeight
void otThreadSetLocalLeaderWeight( otInstance *aInstance, uint8_t aWeight )
Establezca el peso de líder de subproceso que se utiliza al operar en el rol de líder.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otThreadGetLeaderWeight
otThreadSetMaxAllowedChildren
otError otThreadSetMaxAllowedChildren( otInstance *aInstance, uint16_t aMaxChildren )
Establece la cantidad máxima de niños permitidos actualmente.
Este parámetro solo se puede configurar cuando la operación del protocolo Thread se ha detenido.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
otThreadGetMaxAllowedChildren
otThreadSetMaxChildIpAddresses
otError otThreadSetMaxChildIpAddresses( otInstance *aInstance, uint8_t aMaxIpAddresses )
Esta función establece / restaura el número máximo de direcciones IP que cada niño MTD puede registrar con este dispositivo como padre.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadGetMaxChildIpAddresses
otThreadSetNetworkIdTimeout
void otThreadSetNetworkIdTimeout( otInstance *aInstance, uint8_t aTimeout )
Establezca el parámetro NETWORK_ID_TIMEOUT utilizado en el rol de líder.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otThreadGetNetworkIdTimeout
otThreadSetParentPriority
otError otThreadSetParentPriority( otInstance *aInstance, int8_t aParentPriority )
Establezca la prioridad de los padres.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadGetParentPriority
otThreadSetPreferredLeaderPartitionId
void otThreadSetPreferredLeaderPartitionId( otInstance *aInstance, uint32_t aPartitionId )
Establezca el Id. De partición de líder de subproceso preferido que se utiliza al operar en el rol de líder.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otThreadSetPreferredRouterId
otError otThreadSetPreferredRouterId( otInstance *aInstance, uint8_t aRouterId )
Establezca el Id. De enrutador preferido.
Al convertirse en un enrutador / líder, el nodo intenta utilizar este ID de enrutador. Si no se establece el ID de enrutador preferido o si no se puede utilizar, se elige un ID de enrutador generado aleatoriamente. Esta propiedad solo se puede establecer cuando la función del dispositivo está separada o deshabilitada.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadSetPskc
otError otThreadSetPskc( otInstance *aInstance, const otPskc *aPskc )
Configure el Thread PSKc.
Esta función solo tendrá éxito cuando los protocolos Thread estén deshabilitados. Una llamada exitosa a esta función también invalidará los conjuntos de datos operativos activos y pendientes en la memoria no volátil.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadGetPskc
otThreadSetRouterDowngradeThreshold
void otThreadSetRouterDowngradeThreshold( otInstance *aInstance, uint8_t aThreshold )
Establezca el parámetro ROUTER_DOWNGRADE_THRESHOLD utilizado en el rol de líder.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otThreadGetRouterDowngradeThreshold
otThreadSetRouterEligible
otError otThreadSetRouterEligible( otInstance *aInstance, bool aEligible )
Esta función establece si el dispositivo es apto para el enrutador.
Si aEligible
es falso y el dispositivo está funcionando actualmente como un enrutador, esta llamada hará que el dispositivo se desconecte e intente volver a conectarse como un niño.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
otThreadSetRouterSelectionJitter
void otThreadSetRouterSelectionJitter( otInstance *aInstance, uint8_t aRouterJitter )
Establezca el parámetro ROUTER_SELECTION_JITTER utilizado en la función REED / Router.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otThreadGetRouterSelectionJitter
otThreadSetRouterUpgradeThreshold
void otThreadSetRouterUpgradeThreshold( otInstance *aInstance, uint8_t aThreshold )
Establezca el parámetro ROUTER_UPGRADE_THRESHOLD utilizado en el rol de líder.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otThreadGetRouterUpgradeThreshold
otThreadSetSteeringData
void otThreadSetSteeringData( otInstance *aInstance, const otExtAddress *aExtAddress )
Establezca los datos de dirección fuera de banda.
La opción de configuración OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE
debe establecerse para habilitar la configuración de los datos de dirección fuera de banda.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Macros
OT_CHILD_IP6_ADDRESS_ITERATOR_INIT
OT_CHILD_IP6_ADDRESS_ITERATOR_INIT 0
Inicializador para otChildIP6AddressIterator.