nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent

Tóm tắt

Hàm khởi tạo và phá huỷ

WeaveTunnelAgent(void)

Loại công khai

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum
Trạng thái của Tunnel Agent liên quan đến(các) kết nối của Tunnel Agent với Dịch vụ.
AgentState typedef
Trạng thái của Tunnel Agent liên quan đến(các) kết nối của Tunnel Agent với Dịch vụ.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Con trỏ hàm đến trình xử lý do lớp cao hơn thiết lập khi Dịch vụ nhận được yêu cầu Kết nối lại đường hầm.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
Con trỏ hàm đến trình xử lý do một lớp cao hơn thiết lập để hoạt động theo nhiều thông báo liên quan đến đường hầm đến Dịch vụ.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
Con trỏ hàm trỏ đến một trình xử lý do ứng dụng cung cấp để kiểm tra trực tuyến cấp mạng.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
Các bit cờ Weave Tunnel.
WeaveTunnelFlags typedef
Các bit cờ Weave Tunnel.

Các thuộc tính công khai

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Con trỏ hàm đến trình xử lý do một lớp cao hơn thiết lập để hoạt động theo nhiều thông báo liên quan đến đường hầm đến Dịch vụ.
mServiceMgr
WeaveServiceManager *
Con trỏ Trình quản lý dịch vụ dùng để tra cứu và kết nối với Dịch vụ.

Hàm công khai

DisablePrimaryTunnel(void)
void
Tắt đường hầm chính.
EnablePrimaryTunnel(void)
void
Bật đường hầm chính.
GetAgentStateName(const AgentState state)
const char *
Lấy tên WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
Lấy thời gian hệ thống tính bằng mili giây.
GetWeaveTunnelAgentState(void)
Lấy trạng thái TunnelAgent.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Khởi chạy tác nhân Tunnel.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Khởi chạy tác nhân Tunnel.
IsPrimaryTunnelEnabled(void) const
bool
Kiểm tra xem đường hầm chính đã được bật chưa.
IsPrimaryTunnelRoutingRestricted(void)
bool
Kiểm tra xem đường hầm chính có phải tuân theo các hạn chế định tuyến của dịch vụ hay không.
IsTunnelRoutingRestricted(void)
bool
Kiểm tra xem đường hầm có bị dịch vụ hạn chế định tuyến hay không.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
Lệnh gọi lại được nền tảng gọi khi có kết quả của trình kiểm tra mạng trực tuyến.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
Đặt lại thời gian Kết nối lại cho đường hầm chính.
SetAuthMode(const WeaveAuthMode authMode)
void
Đặt WeaveAuthMode cho Tunnel.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
ĐặtnodeId, IPAddress và cổng cho Tunnel.
SetTunnelingDeviceRole(const Role role)
void
Đặt vai trò thiết bị tạo đường hầm(BorderGateway, dependentDevice, MobileDevice) cho Đường hầm.
Shutdown(void)
Tắt Tunnel Agent.
StartServiceTunnel(void)
Khởi động Đường hầm dịch vụ.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
Khởi động Đường hầm dịch vụ.
StopServiceTunnel(void)
void
Đóng kết nối Tunnel với Dịch vụ.
StopServiceTunnel(WEAVE_ERROR err)
void
Đóng kết nối Tunnel với Dịch vụ.

Hàm tĩnh công khai

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Trình xử lý để nhận các gói IPv6 được tạo đường hầm qua đường hầm UDP qua lối tắt giữa cổng biên giới và thiết bị di động, đồng thời chuyển tiếp đến giao diện Tunnel EndPoint sau khi làm giảm gói IPv6 thô từ bên trong tiêu đề đường hầm.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Trình xử lý để nhận các gói IPv6 từ giao diện Tunnel EndPoint và chuyển tiếp, tới Dịch vụ thông qua kết nối Service TCP sau khi đóng gói gói IPv6 bên trong tiêu đề đường hầm hoặc tới Mobile client qua đường hầm lối tắt.

Loại công khai

AgentState

 AgentState

Trạng thái của Tunnel Agent liên quan đến(các) kết nối của Tunnel Agent với Dịch vụ.

Thuộc tính
kState_BkupOnlyTunModeEstablished

Dùng để cho biết rằng đường hầm Sao lưu đến Dịch vụ đã được thiết lập.

kState_Initialized_NoTunnel

Dùng để chỉ báo rằng Tunnel Agent được khởi động nhưng chưa thiết lập đường hầm nào.

kState_NotInitialized

Dùng để chỉ báo rằng Tunnel Agent chưa được khởi động.

kState_PrimaryAndBkupTunModeEstablished

Dùng để chỉ báo rằng cả Đường hầm chính và đường hầm Dự phòng đã được thiết lập.

kState_PrimaryTunModeEstablished

Dùng để cho biết rằng đường hầm chính đến Dịch vụ đã được thiết lập.

AgentState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::AgentState AgentState

Trạng thái của Tunnel Agent liên quan đến(các) kết nối của Tunnel Agent với Dịch vụ.

OnServiceTunnelReconnectNotifyFunct

void(* OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)

Con trỏ hàm đến trình xử lý do lớp cao hơn thiết lập khi Dịch vụ nhận được yêu cầu Kết nối lại đường hầm.

Thông tin chi tiết
Tham số
[in] tunType
Loại đường hầm, Chính hoặc Dự phòng.
[in] reconnectHost
Tên máy chủ do Dịch vụ cung cấp để kết nối lại.
[in] reconnectPort
Cổng đích do Dịch vụ cung cấp để kết nối lại.
[in] appCtxt
Con trỏ trỏ đến một đối tượng ngữ cảnh của ứng dụng

OnServiceTunnelStatusNotifyFunct

void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)

Con trỏ hàm đến trình xử lý do một lớp cao hơn thiết lập để hoạt động theo nhiều thông báo liên quan đến đường hầm đến Dịch vụ.

Thông tin chi tiết
Tham số
[in] reason
Lý do thông báo trạng thái cho ứng dụng.
[in] err
Đã xảy ra lỗi dệt, nếu có
[in] appCtxt
Con trỏ trỏ đến một đối tượng ngữ cảnh của ứng dụng

PlatformNetworkOnlineCheck

void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)

Con trỏ hàm trỏ đến một trình xử lý do ứng dụng cung cấp để kiểm tra trực tuyến cấp mạng.

Thông tin chi tiết
Tham số
[in] tunType
Loại đường hầm, Chính hoặc Dự phòng.
[in] appCtxt
Con trỏ trỏ đến một đối tượng ngữ cảnh của ứng dụng

WeaveTunnelFlags

 WeaveTunnelFlags

Các bit cờ Weave Tunnel.

Thuộc tính
kTunnelFlag_BackupEnabled

Đặt thời điểm đường hầm sao lưu được bật.

kTunnelFlag_BackupRestricted

Thiết lập khi đường hầm sao lưu bị hạn chế định tuyến.

kTunnelFlag_PrimaryEnabled

Đặt thời điểm đường hầm chính được bật.

kTunnelFlag_PrimaryRestricted

Thiết lập khi đường hầm chính bị hạn chế định tuyến.

WeaveTunnelFlags

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags

Các bit cờ Weave Tunnel.

Các thuộc tính công khai

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Con trỏ hàm đến trình xử lý do một lớp cao hơn thiết lập để hoạt động theo nhiều thông báo liên quan đến đường hầm đến Dịch vụ.

mServiceMgr

WeaveServiceManager * mServiceMgr

Con trỏ Trình quản lý dịch vụ dùng để tra cứu và kết nối với Dịch vụ.

Hàm công khai

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Tắt đường hầm chính.

Vô hiệu hoá Đường hầm chính.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Bật đường hầm chính.

Bật đường hầm chính.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Lấy tên WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Lấy thời gian hệ thống tính bằng mili giây.

Nhận thời gian hệ thống hoặc thời gian đơn điệu tính bằng mili giây nếu không có thời gian hệ thống.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Lấy trạng thái TunnelAgent.

Thông tin chi tiết
Trả về
AgentState cho trạng thái hiện tại của WeaveTunnelAgent.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  WeaveAuthMode authMode,
  WeaveServiceManager *svcMgr,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Khởi chạy tác nhân Tunnel.

Thao tác này sẽ tạo đối tượng điểm cuối đường hầm, thiết lập giao diện đường hầm, khởi tạo các biến thành phần, lệnh gọi lại và WeaveTunnelControl.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Khởi chạy tác nhân Tunnel.

Thao tác này sẽ tạo đối tượng điểm cuối đường hầm, thiết lập giao diện đường hầm, khởi tạo các biến thành phần, lệnh gọi lại và WeaveTunnelControl.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Kiểm tra xem đường hầm chính đã được bật chưa.

Thông tin chi tiết
Trả về
true nếu được bật, else false.

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

Kiểm tra xem đường hầm chính có phải tuân theo các hạn chế định tuyến của dịch vụ hay không.

Kiểm tra xem đường hầm chính có phải tuân theo các hạn chế định tuyến hay không.

Thông tin chi tiết
Trả về
true nếu đường hầm chính được thiết lập nhưng phải tuân theo các hạn chế định tuyến của dịch vụ.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Kiểm tra xem đường hầm có bị dịch vụ hạn chế định tuyến hay không.

Kiểm tra xem đường hầm có phải tuân theo các hạn chế định tuyến hay không.

Thông tin chi tiết
Trả về
true nếu đường hầm chính hoặc đường hầm dự phòng được thiết lập và một trong hai đường hầm này bị dịch vụ hạn chế định tuyến.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Lệnh gọi lại được nền tảng gọi khi có kết quả của trình kiểm tra mạng trực tuyến.

Thông tin chi tiết
Tham số
[in] tunType
Loại đường hầm tương ứng với giao diện mà quá trình kiểm tra kết nối mạng được thực hiện.
[in] isOnline
True nếu mạng đang trực tuyến, nếu không thì là false.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Đặt lại thời gian Kết nối lại cho đường hầm chính.

Thông tin chi tiết
Tham số
[in] reconnectImmediately
"True" nếu cần phải kết nối lại ngay lập tức, nếu không thì sử dụng thời gian chờ kết xuất lại đã định cấu hình.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Đặt WeaveAuthMode cho Tunnel.

Thông tin chi tiết
Tham số
[in] authMode
Chế độ xác thực Weave dùng với ứng dụng ngang hàng.

SetDestination

void SetDestination(
  const uint64_t nodeId,
  const IPAddress ipAddr,
  const uint16_t servicePort
)

ĐặtnodeId, IPAddress và cổng cho Tunnel.

ĐặtNodeId và IPAddress cho đích đến Tunnel.

Thông tin chi tiết
Tham số
[in] nodeId
Mã nút của nút đích.
[in] ipAddr
Địa chỉ IP của nút đích.
[in] servicePort
Cổng của nút đích.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

Đặt vai trò thiết bị tạo đường hầm(BorderGateway, dependentDevice, MobileDevice) cho Đường hầm.

Đặt vai trò thiết bị tạo Đường hầm(BorderGateway và Độc lập) cho Đường hầm.

Thông tin chi tiết
Tham số
[in] role
Vai trò do Nhân viên hỗ trợ đường hầm đảm nhận; Cổng biên giới, Thiết bị độc lập hoặc Thiết bị di động.

Tắt

WEAVE_ERROR Shutdown(
  void
)

Tắt Tunnel Agent.

Thao tác này sẽ chia nhỏ kết nối với Dịch vụ và đóng giao diện TunEndPoint sau khi xoá các địa chỉ và tuyến đường được liên kết với giao diện đường hầm.

Thao tác này sẽ chia nhỏ kết nối với Dịch vụ và đóng giao diện TunEndPoint sau khi xoá các địa chỉ và tuyến đường được liên kết với giao diện đường hầm.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR khi thành công, nếu không sẽ là loại WEAVE_ERROR tương ứng.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Khởi động Đường hầm dịch vụ.

Việc này sẽ kích hoạt đường hầm và cố gắng thiết lập kết nối với Dịch vụ.

Thao tác này sẽ cố gắng thiết lập kết nối với Dịch vụ, đồng thời cũng đặt tuyến vải tới giao diện đường hầm.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR khi thành công, nếu không sẽ là loại WEAVE_ERROR tương ứng.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode
)

Khởi động Đường hầm dịch vụ.

Việc này sẽ kích hoạt đường hầm và cố gắng thiết lập kết nối với Dịch vụ.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Đóng kết nối Tunnel với Dịch vụ.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Đóng kết nối Tunnel với Dịch vụ.

Thông tin chi tiết
Tham số
[in] err
WEAVE_NO_ERROR nếu không có lý do cụ thể cho yêu cầu StopServiceTunnel này, nếu không thì nguyên nhân lỗi sẽ được chuyển xuống.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Hàm tĩnh công khai

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Trình xử lý để nhận các gói IPv6 được tạo đường hầm qua đường hầm UDP qua lối tắt giữa cổng biên giới và thiết bị di động, đồng thời chuyển tiếp đến giao diện Tunnel EndPoint sau khi làm giảm gói IPv6 thô từ bên trong tiêu đề đường hầm.

Trình xử lý để nhận các gói IPv6 được tạo đường hầm từ kết nối TCP của dịch vụ và chuyển tiếp đến giao diện Tunnel EndPoint sau khi làm giảm gói IPv6 thô từ bên trong tiêu đề đường hầm.

Thông tin chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] message
Con trỏ trỏ đến đối tượng PacketBuffer đang chứa gói IPv6 được tạo đường hầm.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Trình xử lý để nhận các gói IPv6 từ giao diện Tunnel EndPoint và chuyển tiếp, tới Dịch vụ thông qua kết nối Service TCP sau khi đóng gói gói IPv6 bên trong tiêu đề đường hầm hoặc tới Mobile client qua đường hầm lối tắt.

Trình xử lý để nhận các gói IPv6 từ giao diện Tunnel EndPoint và chuyển tiếp, tới Dịch vụ thông qua kết nối Service TCP sau khi đóng gói gói IPv6 bên trong tiêu đề đường hầm hoặc tới ứng dụng Mobile qua đường hầm cục bộ.

Nếu chưa thiết lập kết nối Dịch vụ, thông báo sẽ được đưa vào hàng đợi cho đến khi thiết lập kết nối. Để tạo đường hầm đến Thiết bị khách dành cho thiết bị di động, bảng bên cạnh nexthop được tham chiếu.

Nếu chưa thiết lập kết nối Dịch vụ, thông báo sẽ được đưa vào hàng đợi cho đến khi thiết lập kết nối. Để tạo đường hầm đến Thiết bị khách dành cho thiết bị di động, bảng bên cạnh nexthop được tham chiếu.

Thông tin chi tiết
Tham số
[in] tunEP
Con trỏ trỏ đến đối tượng TunEndPoint.
[in] message
Con trỏ trỏ đến đối tượng PacketBuffer đang chứa gói IPv6 thô.