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 过滤器参数。
|
公共属性
IP 协议
IPProtocol IPProto
互联网控制消息协议 (ICMP) 版本
虽然此字段是可变类变量,但它是未经修改的类的不变变量。
IPVER
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 堆栈锁定的情况下调用此方法
发送消息
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.
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
|
发送到
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.
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
|
SetICMPFilter
INET_ERROR SetICMPFilter( uint8_t numICMPTypes, const uint8_t *aICMPTypes )
在网络堆栈中设置 ICMP6 过滤器参数。
将 aICMPTypes
中的代码的 ICMPv6 过滤参数应用于系统网络堆栈中的底层端点。
详细信息 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|