nl::Inet::TunEndPoint

#include <src/inet/TunEndPoint.h>

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

摘要

Nest Inet 层利用支持 Weave 隧道代理的 IP-in-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

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

对象在“open”的进入“已关闭”状态它们的状态

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

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

对象在“open”的进入“已关闭”状态它们的状态

公共函数

免费

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 指针