NL::内网::隧道终点

#include <src/inet/TunEndPoint.h>

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

概括

Nest Inet 层封装了在 POSIX 系统和 LwIP 系统上进行交互的方法,使用 IP-in-IP 隧道机制支持 Weave 隧道代理。

遗产

:从继承NL :: Inet电子:: EndPointBasis

公共类型

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

公共属性

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

公共职能

Free (void)
void
关闭隧道并释放对象上的手柄。
GetTunnelInterfaceId (void)
InterfaceId
获取隧道接口标识符。
Init ( InetLayer *inetLayer)
void
初始化隧道端点对象。
InterfaceDown (void)
取消激活隧道接口。
InterfaceUp (void)
激活隧道接口。
IsInterfaceUp (void) const
bool
提取隧道接口的激活状态。
Open (void)
打开隧道伪接口并为其创建句柄。
Open (const char *intfName)
Send ( Weave::System::PacketBuffer *message)
向tun设备发送一个IPv6数据包要发送出去。

公共类型

@11

 @11

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

对象在“打开”状态下初始化,当它们准备好回收时进入“关闭”状态。

OnPacketReceivedFunct

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

数据包接收事件处理程序的类型。

上层在收到来自隧道的 IPv6 数据包时采取行动的委托类型。

细节
参数
[in] endPoint
的指针TunEndPoint对象。
[in] message
的指针编织::系统:: PacketBuffer消息对象。

接收错误函数

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

错误事件处理程序的类型。

对来自隧道的 IPv6 数据包进行错误处理时对更高层采取行动的委托类型。

细节
参数
[in] endPoint
TunEndPoint对象。
[in] err
报告错误代码。

路由操作

 RouteOp

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

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

特性
kRouteTunIntf_Add

为前缀添加路由。

kRouteTunIntf_Del

删除前缀的路由。

路由操作

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

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

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

公共属性

OnPacketReceived

OnPacketReceivedFunct OnPacketReceived

端点的数据包接收事件处理程序委托。

接收错误

OnReceiveErrorFunct OnReceiveError

应用状态

void * mAppState

指向应用程序特定状态对象的指针。

状态

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

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

对象在“打开”状态下初始化,当它们准备好回收时进入“关闭”状态。

公共职能

自由

void Free(
  void
)

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

关闭隧道伪接口设备和递减的引用计数InetLayer对象。

获取隧道接口 ID

InterfaceId GetTunnelInterfaceId(
  void
)

获取隧道接口标识符。

细节
退货
隧道接口标识符。

在里面

void Init(
  InetLayer *inetLayer
)

初始化隧道端点对象。

细节
参数
[in] inetLayer
指向创建隧道端点的 Inet 层对象的指针。

接口关闭

INET_ERROR InterfaceDown(
  void
)

取消激活隧道接口。

细节
返回值
INET_NO_ERROR
成功:隧道接口已停用。
other
另一个系统或平台错误

接口向上

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
)

向tun设备发送一个IPv6数据包要发送出去。

细节
参数
[in] message
要发送的 IPv6 数据包。
返回值
INET_NO_ERROR
成功:数据包封装并排队发送
INET_ERROR_NOT_SUPPORTED
数据包不是 IP 版本 6
INET_ERROR_BAD_ARGS
message是一个NULL指针