nl::Inet::TunEndPoint

#include <src/inet/TunEndPoint.h>

此类的对象表示隧道接口。

摘要

Nest Inet Layer 通过支持 Weave 隧道代理的 IP-IP 隧道机制来封装与 POSIX 系统和 LwIP 系统进行互动的方法。

继承

继承自: nl::Inet::EndPointBasis

公共类型

@11 枚举
底层隧道的基本动态状态。
OnPacketReceivedFunct)(TunEndPoint *endPoint, Weave::System::PacketBuffer *message) typedef
void(*
数据包接收事件处理脚本的类型。
OnReceiveErrorFunct)(TunEndPoint *endPoint, INET_ERROR err) typedef
void(*
错误事件处理脚本的类型。
RouteOp{
  kRouteTunIntf_Add = 0,
  kRouteTunIntf_Del = 1
}
枚举
设置到隧道接口的路由时执行的操作。
RouteOp typedef
设置到隧道接口的路由时执行的操作。

公共属性

OnPacketReceived
端点的数据包接收事件处理脚本委托。
OnReceiveError
mAppState
void *
指向应用专属状态对象的指针。
mState
enum nl::Inet::TunEndPoint::@11
底层隧道的基本动态状态。

公共函数

Free(void)
void
关闭隧道并释放对象上的句柄。
GetTunnelInterfaceId(void)
InterfaceId
获取隧道接口标识符。
Init(InetLayer *inetLayer)
void
初始化 Tunnel EndPoint 对象。
InterfaceDown(void)
停用隧道接口。
InterfaceUp(void)
激活隧道接口。
IsInterfaceUp(void) const
bool
提取隧道接口的激活状态。
Open(void)
打开一个隧道伪接口,并为其创建一个句柄。
Open(const char *intfName)
Send(Weave::System::PacketBuffer *message)
将 IPv6 数据包发送到待发送的 Tun 设备。

公共类型

@11

 @11

底层隧道的基本动态状态。

对象初始化为“打开”状态,当准备好进行回收时再进入“关闭”状态。

OnPacketReceivedFunct

void(* OnPacketReceivedFunct)(TunEndPoint *endPoint, Weave::System::PacketBuffer *message)

数据包接收事件处理脚本的类型。

较高层的受托人类型,在收到隧道中的 IPv6 数据包后执行操作。

具体说明
参数
[in] endPoint
指向 TunEndPoint 对象的指针。
[in] message
指向 Weave::System::PacketBuffer 消息对象的指针。

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(TunEndPoint *endPoint, INET_ERROR err)

错误事件处理脚本的类型。

更高级别的受托人委托类型,在处理来自隧道的 IPv6 数据包时出错时采取相应措施。

具体说明
参数
[in] endPoint
TunEndPoint 对象。
[in] err
已报告错误代码。

RouteOp

 RouteOp

设置到隧道接口的路由时执行的操作。

此枚举类型的值在为封装隧道设置路由时使用。

属性
kRouteTunIntf_Add

为前缀添加路由。

kRouteTunIntf_Del

移除前缀的路由。

RouteOp

enum nl::Inet::TunEndPoint::RouteOp RouteOp

设置到隧道接口的路由时执行的操作。

此枚举类型的值在为封装隧道设置路由时使用。

公共属性

OnPacketReceived

OnPacketReceivedFunct OnPacketReceived

端点的数据包接收事件处理脚本委托。

OnReceiveError

OnReceiveErrorFunct OnReceiveError

mAppState

void * mAppState

指向应用专属状态对象的指针。

mState

enum nl::Inet::TunEndPoint::@11 mState

底层隧道的基本动态状态。

对象初始化为“打开”状态,当准备好进行回收时再进入“关闭”状态。

公共函数

免费

void Free(
  void
)

关闭隧道并释放对象上的句柄。

关闭隧道伪接口设备,并减少 InetLayer 对象的引用计数。

GetTunnelInterfaceId

InterfaceId GetTunnelInterfaceId(
  void
)

获取隧道接口标识符。

具体说明
返回值
隧道接口标识符。

Init

void Init(
  InetLayer *inetLayer
)

初始化 Tunnel EndPoint 对象。

具体说明
参数
[in] inetLayer
指向创建隧道端点的 Inet 层对象的指针。

InterfaceDown

INET_ERROR InterfaceDown(
  void
)

停用隧道接口。

具体说明
返回值
INET_NO_ERROR
成功:隧道接口已停用。
other
其他系统或平台错误

InterfaceUp

INET_ERROR InterfaceUp(
  void
)

激活隧道接口。

具体说明
返回值
INET_NO_ERROR
成功:隧道接口已激活。
other
其他系统或平台错误

IsInterfaceUp

bool IsInterfaceUp(
  void
) const 

提取隧道接口的激活状态。

具体说明
返回值
如果隧道接口处于活动状态,则为 true;否则为 false

打开

INET_ERROR Open(
  void
)

打开一个隧道伪接口,并为其创建一个句柄。

具体说明
返回值
INET_NO_ERROR(如果成功),否则为相应的 INET 映射操作系统错误。

打开

INET_ERROR Open(
  const char *intfName
)

发送

INET_ERROR Send(
  Weave::System::PacketBuffer *message
)

将 IPv6 数据包发送到待发送的 Tun 设备。

具体说明
参数
[in] message
要发送的 IPv6 数据包
返回值
INET_NO_ERROR
成功:数据包已封装并排队等待发送
INET_ERROR_NOT_SUPPORTED
数据包不是 IP 版本 6
INET_ERROR_BAD_ARGS
messageNULL 指针