nl:: Inet:: RawEndPoint
#include <src/inet/RawEndPoint.h>
此类的对象表示原始 IP 网络端点。
摘要
Nest Inet 层封装了与 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)
虽然此字段是可变类变量,但该类是不可修改的类的不变性。
IP 验证
IPVersion IPVer
互联网协议的版本。
虽然此字段是可变类变量,但该类是不可修改的类的不变性。
公共函数
绑定
INET_ERROR Bind( IPAddressType addrType, IPAddress addr, InterfaceId intfId )
将端点绑定到接口 IP 地址。
将端点绑定到指定的网络接口 IP 地址。
详细信息 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||||
返回值 |
|
在 LwIP 上,不得使用已获取的 LwIP 堆栈锁调用此方法。
BindIPv6LinkLocal
INET_ERROR BindIPv6LinkLocal( InterfaceId intf, IPAddress addr )
将原始端点绑定到指定接口索引处的 IPv6 链路本地范围地址。
此外,还会设置各种 IPv6 套接字选项,适合在链路目的地与链路目的地之间传输数据包。
将端点绑定到 intf
所指示网络接口上的 IPv6 链路本地地址 addr
。
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
参数 |
|
||||||||||||
返回值 |
|
||||||||||||
返回值 |
INET_NO_ERROR(成功时)或映射的操作系统错误(失败时)。无效参数列表会导致 INET_ERROR_WRONG_ADDRESS_TYPE。如果原始端点已绑定或正在监听,则返回 INET_ERROR_INCORRECT_STATE。将端点绑定到接口 IPv6 链路本地地址。
|
在 LwIP 上,不得使用已获取的 LwIP 堆栈锁调用此方法。
BindInterface
INET_ERROR BindInterface( IPAddressType addrType, InterfaceId intf )
将端点绑定到网络接口。
将端点绑定到指定的网络接口 IP 地址。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|
在 LwIP 上,不得使用已获取的 LwIP 堆栈锁调用此方法。
关闭
void Close( void )
关闭端点。
如果为 mState != kState_Closed
,则关闭端点,并将其从符合通信事件条件的一组端点中移除。
在 LwIP 系统中,不得使用已获取的 LwIP 堆栈锁调用此方法。
免费
void Free( void )
关闭端点并回收其内存。
调用 Close
方法,然后调用 InetLayerBasis::Release
方法将对象返回到其内存池。
在 LwIP 系统中,不得使用已获取的 LwIP 堆栈锁调用此方法。
GetBoundInterface
InterfaceId GetBoundInterface( void )
获取此端点上的绑定接口。
详细信息 | |
---|---|
返回值 |
InterfaceId。绑定的接口 ID。
|
收听
INET_ERROR Listen( void )
准备端点以接收 ICMP 消息。
如果 mState
已经为 kState_Listening
,则不执行任何操作,否则 mState
会设置为 kState_Listening
,并且端点会根据平台的语义准备好接收 ICMPv6 消息。
详细信息 | |||
---|---|---|---|
返回值 |
|
在 LwIP 上,不得使用已获取的 LwIP 堆栈锁调用此方法
SendMsg
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.
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
|
SendTo
INET_ERROR SendTo( IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags )
SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags)
的同义词。
SendTo
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.
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
|
SetICMPFilter
INET_ERROR SetICMPFilter( uint8_t numICMPTypes, const uint8_t *aICMPTypes )
在网络堆栈中设置 ICMP6 过滤器参数。
将 aICMPTypes
中代码的 ICMPv6 过滤参数应用到系统网络堆栈中的底层端点。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|