nl::Inet::TunEndPoint

#include <src/inet/TunEndPoint.h>

這個類別的物件代表通道介面。

摘要

Nest Inet Layer 包含在 POSIX 系統和 LwIP 系統上互動的方法,並且採用 IP 內 IP 通道機制,可用來支援 Weave 通道代理程式。

繼承

沿用來源: 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
取得通道介面 ID。
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 封包傳送至要送出的 TTN 裝置。

公開類型

@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
)

取得通道介面 ID。

詳細說明
傳回
通道介面 ID。

Init

void Init(
  InetLayer *inetLayer
)

初始化 Tunnel EndPoint 物件。

詳細說明
參數
[in] inetLayer
指向建立 Tunnel EndPoint 的 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 對應 OS 錯誤

開啟

INET_ERROR Open(
  const char *intfName
)

傳送

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

將 IPv6 封包傳送至要送出的 TTN 裝置。

詳細說明
參數
[in] message
決定要傳送的 IPv6 封包
傳回值
INET_NO_ERROR
成功:已封裝並排入佇列以傳送的封包
INET_ERROR_NOT_SUPPORTED
封包並非 IP 版本 6
INET_ERROR_BAD_ARGS
messageNULL 指標