透過集合功能整理內容 你可以依據偏好儲存及分類內容。

nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

此類別的物件代表原始 IP 網路端點。

總結

Nest Inet Layer 包含與 IP 網路端點 (在 Linux 和 BSD 衍生系統上的 SOCK_RAW 通訊端) 或 LwIP 原始通訊協定控制區塊所互動的方式,因為這兩種系統的設定相對應。

繼承

沿用來源: nl::Inet::IPEndPointBasis

公開屬性

IPProto
IPProtocol
網際網路控制訊息通訊協定 (ICMP) 版本
IPVer
IPVersion
網際網路通訊協定的版本。

公開函式

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
將端點繫結至介面 IP 位址。
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
將原始端點繫結至指定介面索引的 IPv6 連結本機範圍位址。
BindInterface(IPAddressType addrType, InterfaceId intf)
將端點繫結至網路介面。
Close(void)
void
關閉端點。
Free(void)
void
關閉端點並回收其記憶體。
GetBoundInterface(void)
InterfaceId
取得這個端點的繫結介面。
Listen(void)
準備端點以接收 ICMP 訊息。
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
傳送 ICMP 訊息至指定目的地。
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) 的同義詞。
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
傳送 ICMP 訊息至指定目的地地址。
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
設定網路堆疊中的 ICMP6 篩選器參數。

公開屬性

IPProto

IPProtocol IPProto

網際網路控制訊息通訊協定 (ICMP) 版本

這個欄位是可變動的類別變數,但這個類別為不變的不變類型,因此無法修改。

IPVer

IPVersion IPVer

網際網路通訊協定的版本。

這個欄位是可變動的類別變數,但這個類別為不變的不變類型,因此無法修改。

公開函式

繫結

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

將端點繫結至介面 IP 位址。

將端點繫結至指定的網路介面 IP 位址。

詳細資料
參數
[in] addrType
IP 位址的通訊協定版本
[in] addr
IP 位址 (必須是介面位址)
[in] intfId
網路介面指標
傳回值
INET_NO_ERROR
成功:端點已繫結至位址
INET_ERROR_INCORRECT_STATE
端點先前已繫結
INET_NO_MEMORY
端點的記憶體不足
INET_ERROR_UNKNOWN_INTERFACE
在某些平台上,選擇性指定的介面並不存在。
INET_ERROR_WRONG_PROTOCOL_TYPE
addrTypeIPVer 不符。
INET_ERROR_WRONG_ADDRESS_TYPE
addrType為「kIPAddressType_Any」,或「addr」類型不等於「addrType」。
other
其他系統或平台錯誤

在 LwIP 上,您不能使用已取得的 LwIP 堆疊鎖定呼叫該方法。

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

將原始端點繫結至指定介面索引的 IPv6 連結本機範圍位址。

也可以設定各種合適的 IPv6 通訊端選項,將封包傳輸至連結目的地。

intf 指定的網路介面上將端點繫結至 IPv6 連結本機位址 addr

詳細資料
參數
[in] intf
用於識別位址範圍的 InterfaceId。
[in] addr
IPv6 連結本機範圍 IPAddress 物件。
參數
[in] intf
網路介面的指標
[in] addr
IP 位址 (必須是介面位址)
傳回值
INET_NO_ERROR
成功:端點已繫結至位址
INET_ERROR_INCORRECT_STATE
端點先前已繫結
INET_NO_MEMORY
端點的記憶體不足
INET_ERROR_WRONG_PROTOCOL_TYPE
addrTypeIPVer 不符。
INET_ERROR_WRONG_ADDRESS_TYPE
addr 不是 IPv6 連結本機位址,或 intfINET_NULL_INTERFACEID
other
其他系統或平台錯誤
傳回
成功執行 INET_NO_ERROR,或失敗的對應 OS 錯誤。無效的參數清單可能會導致 INET_ERROR_WRONG_ADDRESS_TYPE。如果原始端點已繫結或正在聽取,則會傳回 INET_ERROR_INCORRECT_STATE。將端點繫結至介面 IPv6 連結本機位址。

在 LwIP 上,您不能使用已取得的 LwIP 堆疊鎖定呼叫該方法。

雙向介面

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

將端點繫結至網路介面。

將端點繫結至指定的網路介面 IP 位址。

詳細資料
參數
[in] addrType
IP 位址的通訊協定版本。
[in] intf
網路介面。
傳回值
INET_NO_ERROR
成功:端點已繫結至位址
INET_NO_MEMORY
端點的記憶體不足
INET_ERROR_NOT_IMPLEMENTED
系統導入作業未完成。
INET_ERROR_UNKNOWN_INTERFACE
在某些平台上,介面不存在。
other
其他系統或平台錯誤

在 LwIP 上,您不能使用已取得的 LwIP 堆疊鎖定呼叫該方法。

關閉

void Close(
  void
)

關閉端點。

如為 mState != kState_Closed,則關閉端點,並將端點從符合通訊事件的端點組中移除。

在 LwIP 系統上,不得透過已取得 LwIP 堆疊鎖定呼叫該方法。

免費

void Free(
  void
)

關閉端點並回收其記憶體。

叫用 Close 方法,然後叫用 InetLayerBasis::Release 方法將物件傳回其記憶體集區。

在 LwIP 系統上,不得透過已取得 LwIP 堆疊鎖定呼叫該方法。

取得界線介面

InterfaceId GetBoundInterface(
  void
)

取得這個端點的繫結介面。

詳細資料
傳回
InterfaceId 的界面 ID。

播放

INET_ERROR Listen(
  void
)

準備端點以接收 ICMP 訊息。

如果 mState 已經是 kState_Listening,則不會執行任何作業,否則 mState 會設為 kState_Listening,且端點會根據平台的語意準備接收 ICMPv6 訊息。

詳細資料
傳回值
INET_NO_ERROR
一律傳回。

在 LwIP 上,不得透過已取得的 LwIP 堆疊鎖定呼叫該方法

傳送

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

傳送 ICMP 訊息至指定目的地。

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

詳細資料
參數
[in] pktInfo
訊息的目的地資訊
[in] msg
包含 UDP 訊息的封包緩衝區
[in] sendFlags
選用傳輸選項旗標
傳回值
INET_NO_ERROR
成功:msg 已排入傳輸佇列。
INET_ERROR_NOT_SUPPORTED
系統不支援要求的作業。
INET_ERROR_WRONG_ADDRESS_TYPE
目的地位址和繫結介面地址沒有相符的通訊協定版本或地址類型。
INET_ERROR_MESSAGE_TOO_LONG
msg 不包含完整的 ICMP 訊息。
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
在部分平台上,只有 msg 的截斷部分已排入佇列以供傳輸。
other
其他系統或平台錯誤

傳送到

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) 的同義詞。

傳送到

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

傳送 ICMP 訊息至指定目的地地址。

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

詳細資料
參數
[in] addr
目的地 IP 位址
[in] intfId
網路介面指標
[in] msg
包含 UDP 訊息的封包緩衝區
[in] sendFlags
選用傳輸選項旗標
傳回值
INET_NO_ERROR
成功:msg 已排入傳輸佇列。
INET_ERROR_NOT_SUPPORTED
系統不支援要求的作業。
INET_ERROR_WRONG_ADDRESS_TYPE
目的地位址和繫結介面地址沒有相符的通訊協定版本或地址類型。
INET_ERROR_MESSAGE_TOO_LONG
msg 不包含完整的 ICMP 訊息。
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
在部分平台上,只有 msg 的截斷部分已排入佇列以供傳輸。
other
其他系統或平台錯誤

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

設定網路堆疊中的 ICMP6 篩選器參數。

aICMPTypes 中程式碼的 ICMPv6 篩選參數套用至系統網路堆疊中的基礎端點。

詳細資料
參數
[in] numICMPTypes
陣列長度為 aICMPTypes
[in] aICMPTypes
要篩選的 ICMPv6 類型代碼組合。
傳回值
INET_NO_ERROR
成功:篩選器參數集
INET_ERROR_NOT_IMPLEMENTED
系統未執行
INET_ERROR_WRONG_ADDRESS_TYPE
端點不是 IPv6 類型
INET_ERROR_WRONG_PROTOCOL_TYPE
端點不是 ICMP6 類型
other
其他系統或平台錯誤