Infrastructure Interface
This module includes the platform abstraction for the adjacent infrastructure network interface.
Functions |
|
| bool | otPlatInfraIfHasAddress (uint32_t aInfraIfIndex, const otIp6Address *aAddress) |
|
This method tells whether an infra interface has the given IPv6 address assigned.
|
|
| otError | otPlatInfraIfSendIcmp6Nd (uint32_t aInfraIfIndex, const otIp6Address *aDestAddress, const uint8_t *aBuffer, uint16_t aBufferLength) |
|
This method sends an ICMPv6 Neighbor Discovery message on given infrastructure interface.
|
|
| void | otPlatInfraIfRecvIcmp6Nd ( otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Address *aSrcAddress, const uint8_t *aBuffer, uint16_t aBufferLength) |
|
The infra interface driver calls this method to notify OpenThread that an ICMPv6 Neighbor Discovery message is received.
|
|
| otError | otPlatInfraIfStateChanged ( otInstance *aInstance, uint32_t aInfraIfIndex, bool aIsRunning) |
|
The infra interface driver calls this method to notify OpenThread of the interface state changes.
|
|
| otError | otPlatInfraIfDiscoverNat64Prefix (uint32_t aInfraIfIndex) |
Send a request to discover the NAT64 prefix on the infrastructure interface with
aInfraIfIndex
.
|
|
| void | otPlatInfraIfDiscoverNat64PrefixDone ( otInstance *aInstance, uint32_t aInfraIfIndex, const otIp6Prefix *aIp6Prefix) |
|
The infra interface driver calls this method to notify OpenThread that the discovery of NAT64 prefix is done.
|
|
Detailed Description
This module includes the platform abstraction for the adjacent infrastructure network interface.
Function Documentation
◆ otPlatInfraIfDiscoverNat64Prefix()
| otError otPlatInfraIfDiscoverNat64Prefix | ( | uint32_t |
aInfraIfIndex
|
) |
Send a request to discover the NAT64 prefix on the infrastructure interface with
aInfraIfIndex
.
OpenThread will call this method periodically to monitor the presence or change of NAT64 prefix.
- Parameters
-
[in] aInfraIfIndexThe index of the infrastructure interface to discover the NAT64 prefix.
- Return values
-
OT_ERROR_NONESuccessfully request NAT64 prefix discovery. OT_ERROR_FAILEDFailed to request NAT64 prefix discovery.
◆ otPlatInfraIfDiscoverNat64PrefixDone()
| void otPlatInfraIfDiscoverNat64PrefixDone | ( | otInstance * |
aInstance,
|
| uint32_t |
aInfraIfIndex,
|
||
| const otIp6Prefix * |
aIp6Prefix
|
||
| ) |
The infra interface driver calls this method to notify OpenThread that the discovery of NAT64 prefix is done.
This method is expected to be invoked after calling otPlatInfraIfDiscoverNat64Prefix. If no NAT64 prefix is discovered,
aIp6Prefix
shall point to an empty prefix with zero length.
- Parameters
-
[in] aInstanceThe OpenThread instance structure. [in] aInfraIfIndexThe index of the infrastructure interface on which the NAT64 prefix is discovered. [in] aIp6PrefixA pointer to NAT64 prefix.
◆ otPlatInfraIfHasAddress()
| bool otPlatInfraIfHasAddress | ( | uint32_t |
aInfraIfIndex,
|
| const otIp6Address * |
aAddress
|
||
| ) |
This method tells whether an infra interface has the given IPv6 address assigned.
- Parameters
-
[in] aInfraIfIndexThe index of the infra interface. [in] aAddressThe IPv6 address.
- Returns
- TRUE if the infra interface has given IPv6 address assigned, FALSE otherwise.
◆ otPlatInfraIfRecvIcmp6Nd()
| void otPlatInfraIfRecvIcmp6Nd | ( | otInstance * |
aInstance,
|
| uint32_t |
aInfraIfIndex,
|
||
| const otIp6Address * |
aSrcAddress,
|
||
| const uint8_t * |
aBuffer,
|
||
| uint16_t |
aBufferLength
|
||
| ) |
The infra interface driver calls this method to notify OpenThread that an ICMPv6 Neighbor Discovery message is received.
See RFC 4861: https://tools.ietf.org/html/rfc4861 .
- Parameters
-
[in] aInstanceThe OpenThread instance structure. [in] aInfraIfIndexThe index of the infrastructure interface on which the ICMPv6 message is received. [in] aSrcAddressThe source address this message is received from. [in] aBufferThe ICMPv6 message buffer. [in] aBufferLengthThe length of the ICMPv6 message buffer.
- Note
- Per RFC 4861, the caller should enforce that the source address MUST be a IPv6 link-local address and the IP Hop Limit MUST be 255.
◆ otPlatInfraIfSendIcmp6Nd()
| otError otPlatInfraIfSendIcmp6Nd | ( | uint32_t |
aInfraIfIndex,
|
| const otIp6Address * |
aDestAddress,
|
||
| const uint8_t * |
aBuffer,
|
||
| uint16_t |
aBufferLength
|
||
| ) |
This method sends an ICMPv6 Neighbor Discovery message on given infrastructure interface.
See RFC 4861: https://tools.ietf.org/html/rfc4861 .
- Parameters
-
[in] aInfraIfIndexThe index of the infrastructure interface this message is sent to. [in] aDestAddressThe destination address this message is sent to. [in] aBufferThe ICMPv6 message buffer. The ICMPv6 checksum is left zero and the platform should do the checksum calculate. [in] aBufferLengthThe length of the message buffer.
- Note
-
Per RFC 4861, the implementation should send the message with IPv6 link-local source address of interface
aInfraIfIndexand IP Hop Limit 255.
- Return values
-
OT_ERROR_NONESuccessfully sent the ICMPv6 message. OT_ERROR_FAILEDFailed to send the ICMPv6 message.
◆ otPlatInfraIfStateChanged()
| otError otPlatInfraIfStateChanged | ( | otInstance * |
aInstance,
|
| uint32_t |
aInfraIfIndex,
|
||
| bool |
aIsRunning
|
||
| ) |
The infra interface driver calls this method to notify OpenThread of the interface state changes.
It is fine for the platform to call to method even when the running state of the interface hasn't changed. In this case, the Routing Manager state is not affected.
- Parameters
-
[in] aInstanceThe OpenThread instance structure. [in] aInfraIfIndexThe index of the infrastructure interface. [in] aIsRunningA boolean that indicates whether the infrastructure interface is running.
- Return values
-
OT_ERROR_NONESuccessfully updated the infra interface status. OT_ERROR_INVALID_STATEThe Routing Manager is not initialized. OT_ERROR_INVALID_ARGSThe aInfraIfIndexdoesn't match the infra interface the Routing Manager are initialized with.