IPv6
該模塊包括控制IPv6通信的功能。
概要
枚舉 | |
---|---|
anonymous enum { | 枚舉 IPv6地址來源。 |
類型定義 | |
---|---|
otIp6Address | 類型定義struct otIp6Address 此結構表示一個IPv6地址。 |
otIp6AddressCallback )(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) | 類型定義void(* 添加或刪除內部IPv6地址時,將調用此函數指針。 |
otIp6AddressComponents | 類型定義struct otIp6AddressComponents 此結構表示IPv6地址的組成部分。 |
otIp6AddressInfo | 類型定義struct otIp6AddressInfo |
otIp6InterfaceIdentifier | 類型定義struct otIp6InterfaceIdentifier 此結構表示IPv6地址的接口標識符。 |
otIp6NetworkPrefix | 類型定義struct otIp6NetworkPrefix 此結構表示IPv6地址的網絡前綴(地址的最高有效64位)。 |
otIp6Prefix | 類型定義struct otIp6Prefix 此結構表示IPv6前綴。 |
otIp6ReceiveCallback )(otMessage *aMessage, void *aContext) | 類型定義void(* 收到IPv6數據報時,將調用此函數指針。 |
otIp6RegisterMulticastListenersCallback )(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) | 類型定義void(* 使用 otIp6RegisterMulticastListeners 結果調用此函數指針。 |
otIp6SlaacPrefixFilter )(otInstance *aInstance, const otIp6Prefix *aPrefix) | 類型定義bool(* 該功能指針允許用戶過濾前綴,並且不允許添加基於前綴的SLAAC地址。 |
otMessageInfo | 類型定義struct otMessageInfo 此結構表示本地和對等IPv6套接字地址。 |
otNetifAddress | 類型定義struct otNetifAddress 此結構表示IPv6網絡接口單播地址。 |
otNetifMulticastAddress | 類型定義struct otNetifMulticastAddress 此結構表示IPv6網絡接口多播地址。 |
otSockAddr | 類型定義struct otSockAddr 此結構表示IPv6套接字地址。 |
變數 | |
---|---|
OT_TOOL_PACKED_END |
職能 | |
---|---|
otIp6AddUnicastAddress ( otInstance *aInstance, const otNetifAddress *aAddress) | 將網絡接口地址添加到線程接口。 |
otIp6AddUnsecurePort ( otInstance *aInstance, uint16_t aPort) | 此功能將端口添加到允許的不安全端口列表中。 |
otIp6AddressFromString (const char *aString, otIp6Address *aAddress) | 將人類可讀的IPv6地址字符串轉換為二進製表示形式。 |
otIp6GetMulticastAddresses ( otInstance *aInstance) | const otNetifMulticastAddress * 獲取預訂到Thread接口的IPv6多播地址的列表。 |
otIp6GetUnicastAddresses ( otInstance *aInstance) | const otNetifAddress * 獲取分配給Thread接口的IPv6地址的列表。 |
otIp6GetUnsecurePorts ( otInstance *aInstance, uint8_t *aNumEntries) | const uint16_t * 此函數返回一個指向不安全端口列表的指針。 |
otIp6IsAddressEqual (const otIp6Address *aFirst, const otIp6Address *aSecond) | bool 測試兩個IPv6地址是否相同。 |
otIp6IsAddressUnspecified (const otIp6Address *aAddress) | bool 該功能指示給定的IPv6地址是否為未指定地址。 |
otIp6IsEnabled ( otInstance *aInstance) | bool 此功能指示IPv6接口是否打開。 |
otIp6IsMulticastPromiscuousEnabled ( otInstance *aInstance) | bool 檢查是否在線程接口上啟用了多播混雜模式。 |
otIp6IsReceiveFilterEnabled ( otInstance *aInstance) | bool 此函數指示通過otIp6SetReceiveCallback()中指定的回調傳遞IPv6數據報時,是否過濾掉了線程控制流量。 |
otIp6IsSlaacEnabled ( otInstance *aInstance) | bool 該功能指示是否啟用了SLAAC模塊。 |
otIp6NewMessage ( otInstance *aInstance, const otMessageSettings *aSettings) | 分配新的消息緩衝區以發送IPv6消息。 |
otIp6NewMessageFromBuffer ( otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings) | 分配新的消息緩衝區,並將IPv6數據報寫入消息緩衝區以發送IPv6消息。 |
otIp6PrefixMatch (const otIp6Address *aFirst, const otIp6Address *aSecond) | uint8_t 此函數返回兩個IPv6地址的前綴匹配長度(位)。 |
otIp6RegisterMulticastListeners ( otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext) | 該功能將組播偵聽器註冊到主骨幹路由器。 |
otIp6RemoveAllUnsecurePorts ( otInstance *aInstance) | void 此功能從允許的不安全端口列表中刪除所有端口。 |
otIp6RemoveUnicastAddress ( otInstance *aInstance, const otIp6Address *aAddress) | 從線程接口中刪除網絡接口地址。 |
otIp6RemoveUnsecurePort ( otInstance *aInstance, uint16_t aPort) | 此功能從允許的不安全端口列表中刪除端口。 |
otIp6SelectSourceAddress ( otInstance *aInstance, otMessageInfo *aMessageInfo) | 此函數執行OpenThread源地址選擇。 |
otIp6Send ( otInstance *aInstance, otMessage *aMessage) | 此函數通過Thread接口發送IPv6數據報。 |
otIp6SetAddressCallback ( otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext) | void 此函數註冊一個回調以通知內部IPv6地址更改。 |
otIp6SetEnabled ( otInstance *aInstance, bool aEnabled) | 此功能打開/關閉IPv6接口。 |
otIp6SetMulticastPromiscuousEnabled ( otInstance *aInstance, bool aEnabled) | void 在Thread接口上啟用多播混雜模式。 |
otIp6SetReceiveCallback ( otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext) | void 此函數註冊一個回調以提供接收到的IPv6數據報。 |
otIp6SetReceiveFilterEnabled ( otInstance *aInstance, bool aEnabled) | void 此函數設置通過otIp6SetReceiveCallback()中指定的回調傳遞IPv6數據報時,是否過濾掉線程控制流量。 |
otIp6SetSlaacEnabled ( otInstance *aInstance, bool aEnabled) | void 此功能啟用/禁用SLAAC模塊。 |
otIp6SetSlaacPrefixFilter ( otInstance *aInstance, otIp6SlaacPrefixFilter aFilter) | void 此函數設置SLAAC模塊過濾器處理程序。 |
otIp6SubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress) | 將線程接口訂閱到網絡接口多播地址。 |
otIp6UnsubscribeMulticastAddress ( otInstance *aInstance, const otIp6Address *aAddress) | 取消訂閱線程接口到網絡接口多播地址。 |
結構 | |
---|---|
otIp6Address | 此結構表示一個IPv6地址。 |
otIp6AddressComponents | 此結構表示IPv6地址的組成部分。 |
otIp6AddressInfo | 此結構表示IPv6地址信息。 |
otIp6InterfaceIdentifier | 此結構表示IPv6地址的接口標識符。 |
otIp6NetworkPrefix | 此結構表示IPv6地址的網絡前綴(地址的最高有效64位)。 |
otIp6Prefix | 此結構表示IPv6前綴。 |
otMessageInfo | 此結構表示本地和對等IPv6套接字地址。 |
otNetifAddress | 此結構表示IPv6網絡接口單播地址。 |
otNetifMulticastAddress | 此結構表示IPv6網絡接口多播地址。 |
otSockAddr | 此結構表示IPv6套接字地址。 |
工會 | |
---|---|
otIp6InterfaceIdentifier :: OT_TOOL_PACKED_FIELD |
枚舉
匿名枚舉
anonymous enum
類型定義
otIp6AddressCallback
void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)
添加或刪除內部IPv6地址時,將調用此函數指針。
細節 | |||||||
---|---|---|---|---|---|---|---|
參量 |
|
otIp6AddressInfo
struct otIp6AddressInfo otIp6AddressInfo
otIp6ReceiveCallback
void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)
收到IPv6數據報時,將調用此函數指針。
細節 | |||||
---|---|---|---|---|---|
參量 |
|
otIp6RegisterMulticastListenersCallback
void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)
使用otIp6RegisterMulticastListeners
結果調用此函數指針。
細節 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參量 |
|
otIp6RegisterMulticastListeners
otIp6SlaacPrefixFilter
bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)
該功能指針允許用戶過濾前綴,並且不允許添加基於前綴的SLAAC地址。
otIp6SetSlaacPrefixFilter()
可用於設置過濾器處理程序。當過濾器處理程序要基於前綴添加SLAAC地址時,它將由SLAAC模塊調用。其布爾返回值確定是否過濾(未添加)地址。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
返回值 |
|
變數
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END
職能
otIp6AddUnicastAddress
otError otIp6AddUnicastAddress( otInstance *aInstance, const otNetifAddress *aAddress )
將網絡接口地址添加到線程接口。
傳入的實例aAddress
由Thread接口復制。線程接口僅支持固定數量的外部添加的單播地址。請參閱OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS。
細節 | |||||||
---|---|---|---|---|---|---|---|
參量 |
| ||||||
返回值 |
|
otIp6AddUnsecurePort
otError otIp6AddUnsecurePort( otInstance *aInstance, uint16_t aPort )
此功能將端口添加到允許的不安全端口列表中。
細節 | |||||||
---|---|---|---|---|---|---|---|
參量 |
| ||||||
返回值 |
|
otIp6AddressFromString
otError otIp6AddressFromString( const char *aString, otIp6Address *aAddress )
將人類可讀的IPv6地址字符串轉換為二進製表示形式。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
返回值 |
|
otIp6GetMulticastAddresses
const otNetifMulticastAddress * otIp6GetMulticastAddresses( otInstance *aInstance )
獲取預訂到Thread接口的IPv6多播地址的列表。
細節 | |||
---|---|---|---|
參量 |
| ||
退貨 | 指向第一個網絡接口多播地址的指針。 |
otIp6GetUnicastAddresses
const otNetifAddress * otIp6GetUnicastAddresses( otInstance *aInstance )
獲取分配給Thread接口的IPv6地址的列表。
細節 | |||
---|---|---|---|
參量 |
| ||
退貨 | 指向第一個網絡接口地址的指針。 |
otIp6GetUnsecurePorts
const uint16_t * otIp6GetUnsecurePorts( otInstance *aInstance, uint8_t *aNumEntries )
此函數返回一個指向不安全端口列表的指針。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
退貨 | 指向不安全端口列表的指針。 |
otIp6IsAddressEqual
bool otIp6IsAddressEqual( const otIp6Address *aFirst, const otIp6Address *aSecond )
測試兩個IPv6地址是否相同。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
返回值 |
|
otIp6IsAddressUnspecified
bool otIp6IsAddressUnspecified( const otIp6Address *aAddress )
該功能指示給定的IPv6地址是否為未指定地址。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
返回值 |
|
otIp6IsEnabled
bool otIp6IsEnabled( otInstance *aInstance )
此功能指示IPv6接口是否打開。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
返回值 |
|
otIp6IsMulticastPromiscuousEnabled
bool otIp6IsMulticastPromiscuousEnabled( otInstance *aInstance )
otIp6IsReceiveFilterEnabled
bool otIp6IsReceiveFilterEnabled( otInstance *aInstance )
此函數指示通過otIp6SetReceiveCallback()中指定的回調傳遞IPv6數據報時,是否過濾掉了線程控制流量。
細節 | |||
---|---|---|---|
參量 |
| ||
退貨 | 如果篩選出線程控制流量,則為TRUE,否則為FALSE。 |
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled
otIp6IsSlaacEnabled
bool otIp6IsSlaacEnabled( otInstance *aInstance )
該功能指示是否啟用了SLAAC模塊。
此功能需要啟用構建時功能OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
。
細節 | |||||
---|---|---|---|---|---|
返回值 |
|
otIp6NewMessage
otMessage * otIp6NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
分配新的消息緩衝區以發送IPv6消息。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
退貨 | 指向消息緩衝區的指針;如果沒有可用的消息緩衝區或參數無效,則為NULL。 |
otMessageFree
otIp6NewMessageFromBuffer
otMessage * otIp6NewMessageFromBuffer( otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings )
分配新的消息緩衝區,並將IPv6數據報寫入消息緩衝區以發送IPv6消息。
細節 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參量 |
| ||||||||
退貨 | 指向消息的指針;如果IPv6標頭格式錯誤或消息緩衝區不足,則為NULL。 |
otMessageFree
otIp6PrefixMatch
uint8_t otIp6PrefixMatch( const otIp6Address *aFirst, const otIp6Address *aSecond )
此函數返回兩個IPv6地址的前綴匹配長度(位)。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
退貨 | 前綴匹配長度(以位為單位)。 |
otIp6RegisterMulticastListeners
otError otIp6RegisterMulticastListeners( otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext )
該功能將組播偵聽器註冊到主骨幹路由器。
注意:僅在同時啟用OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE
和OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
時可用)
細節 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參量 |
| ||||||||||||
返回值 |
|
otIp6RegisterMulticastListenersCallback
otIp6RemoveAllUnsecurePorts
void otIp6RemoveAllUnsecurePorts( otInstance *aInstance )
此功能從允許的不安全端口列表中刪除所有端口。
細節 | |||
---|---|---|---|
參量 |
|
otIp6RemoveUnicastAddress
otError otIp6RemoveUnicastAddress( otInstance *aInstance, const otIp6Address *aAddress )
從線程接口中刪除網絡接口地址。
細節 | |||||||
---|---|---|---|---|---|---|---|
參量 |
| ||||||
返回值 |
|
otIp6RemoveUnsecurePort
otError otIp6RemoveUnsecurePort( otInstance *aInstance, uint16_t aPort )
此功能從允許的不安全端口列表中刪除端口。
細節 | |||||||
---|---|---|---|---|---|---|---|
參量 |
| ||||||
返回值 |
|
otIp6SelectSourceAddress
otError otIp6SelectSourceAddress( otInstance *aInstance, otMessageInfo *aMessageInfo )
此函數執行OpenThread源地址選擇。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
返回值 |
|
otIp6Send
otError otIp6Send( otInstance *aInstance, otMessage *aMessage )
此函數通過Thread接口發送IPv6數據報。
進行此呼叫時,呼叫者將轉移aMessage
所有權。處理完成後,包括返回OT_ERROR_NONE
以外的值時,OpenThread將釋放aMessage
。
細節 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參量 |
| ||||||||||||
返回值 |
|
otIp6SetAddressCallback
void otIp6SetAddressCallback( otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext )
此函數註冊一個回調以通知內部IPv6地址更改。
細節 | |||||||
---|---|---|---|---|---|---|---|
參量 |
|
otIp6SetEnabled
otError otIp6SetEnabled( otInstance *aInstance, bool aEnabled )
此功能打開/關閉IPv6接口。
調用此功能以啟用/禁用IPv6通信。
細節 | |||||
---|---|---|---|---|---|
參量 |
| ||||
返回值 |
|
otIp6SetMulticastPromiscuousEnabled
void otIp6SetMulticastPromiscuousEnabled( otInstance *aInstance, bool aEnabled )
在Thread接口上啟用多播混雜模式。
細節 | |||||
---|---|---|---|---|---|
參量 |
|
otIp6IsMulticastPromiscuousEnabled
otIp6SetReceiveCallback
void otIp6SetReceiveCallback( otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext )
此函數註冊一個回調以提供接收到的IPv6數據報。
默認情況下,此回調不傳遞線程控制流量。請參閱otIp6SetReceiveFilterEnabled()以更改線程控制流量過濾器設置。
細節 | |||||||
---|---|---|---|---|---|---|---|
參量 |
|
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled
otIp6SetReceiveFilterEnabled
void otIp6SetReceiveFilterEnabled( otInstance *aInstance, bool aEnabled )
此函數設置通過otIp6SetReceiveCallback()中指定的回調傳遞IPv6數據報時,是否過濾掉線程控制流量。
細節 | |||||
---|---|---|---|---|---|
參量 |
|
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled
otIp6SetSlaacEnabled
void otIp6SetSlaacEnabled( otInstance *aInstance, bool aEnabled )
此功能啟用/禁用SLAAC模塊。
此功能需要啟用構建時功能OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
。
啟用SLAAC模塊後,會將SLAAC地址(基於網絡數據中的網格前綴)添加到接口。禁用SLAAC模塊時,將刪除所有以前添加的SLAAC地址。
細節 | |||||
---|---|---|---|---|---|
參量 |
|
otIp6SetSlaacPrefixFilter
void otIp6SetSlaacPrefixFilter( otInstance *aInstance, otIp6SlaacPrefixFilter aFilter )
此函數設置SLAAC模塊過濾器處理程序。
此功能需要啟用構建時功能OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
。
當SLAAC模塊要基於前綴添加SLAAC地址以決定是否應添加該地址時,將由SLAAC模塊調用過濾處理程序。
NULL過濾器處理程序將禁用過濾,並允許添加所有SLAAC地址。
如果未調用此函數,則SLAAC模塊使用的默認過濾器將為NULL(禁用過濾)。
細節 | |||||
---|---|---|---|---|---|
參量 |
|
otIp6SubscribeMulticastAddress
otError otIp6SubscribeMulticastAddress( otInstance *aInstance, const otIp6Address *aAddress )
將線程接口訂閱到網絡接口多播地址。
傳入的實例aAddress
將由Thread接口復制。線程接口僅支持固定數量的外部添加的多播地址。請參閱OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS。
細節 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參量 |
| ||||||||||
返回值 |
|
otIp6UnsubscribeMulticastAddress
otError otIp6UnsubscribeMulticastAddress( otInstance *aInstance, const otIp6Address *aAddress )
取消訂閱線程接口到網絡接口多播地址。
細節 | |||||||
---|---|---|---|---|---|---|---|
參量 |
| ||||||
返回值 |
|
巨集
OT_IP6_ADDRESS_SIZE
OT_IP6_ADDRESS_SIZE 16
IPv6地址的大小(字節)
OT_IP6_IID_SIZE
OT_IP6_IID_SIZE 8
IPv6接口標識符的大小(字節)
OT_IP6_PREFIX_BITSIZE
OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)
IPv6前綴的大小(位)
OT_IP6_PREFIX_SIZE
OT_IP6_PREFIX_SIZE 8
IPv6前綴的大小(字節)