nl::Inet::TunEndPoint

#include <src/inet/TunEndPoint.h>

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

摘要

Nest Inet Layer 封裝了在 POSIX 系統和 LwIP 系統上互動的方法,以及支援 Weave 隧道代理程式的 IP-in-IP 通道機制。

繼承

沿用自: 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 封包至要傳出的中繼裝置。

公開類型

@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 封包至要傳出的中繼裝置。

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