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

Tóm tắt

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

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 Tác nhân đường hầm liên quan đến(các) kết nối với Dịch vụ.
AgentState typedef
Trạng thái của Tác nhân đường hầm liên quan đến(các) kết nối 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 một lớp cao hơn đặt khi nhận được Kết nối lại đường hầm từ Dịch vụ.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
Con trỏ hàm đến trình xử lý do lớp cao hơn đặt để hoạt động dựa trên 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 đến 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.

Thuộc tính công khai

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Con trỏ hàm đến trình xử lý do lớp cao hơn đặt để hoạt động dựa trên 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
Xem thời gian hệ thống theo 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 động tác nhân Tunnel (Đường hầm).
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Khởi động tác nhân Tunnel (Đường hầm).
IsPrimaryTunnelEnabled(void) const
bool
Kiểm tra xem đường hầm chính đã bật hay 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 do dịch vụ hay không.
IsTunnelRoutingRestricted(void)
bool
Kiểm tra xem đường hầm có phải tuân theo các hạn chế định tuyến do dịch vụ hay không.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
Nền tảng sẽ gọi lệnh gọi lại khi có kết quả của công cụ kiểm tra trực tuyến mạng.
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 Đường hầm.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Đặt mã nút đích, IPAddress và cổng cho Đường hầm.
SetTunnelingDeviceRole(const Role role)
void
Đặt vai trò thiết bị Tạo đường hầm(BorderGateway, độc lậpDevice, MobileDevice) cho đường hầm.
Shutdown(void)
Hãy đóng cửa sổ Tác nhân đường hầm.
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 Đường hầm với Dịch vụ.
StopServiceTunnel(WEAVE_ERROR err)
void
Đóng kết nối Đường hầm 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 phân luồng qua đường hầm UDP qua lối tắt giữa cổng biên và thiết bị di động, đồng thời chuyển tiếp đến giao diện Tunnel EndPoint sau khi phân giải 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 Ứng dụng di động qua đường hầm lối tắt.

Loại công khai

AgentState

 AgentState

Trạng thái của Tác nhân đường hầm liên quan đến(các) kết nối 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 để cho biết Tác nhân đường hầm đã được khởi động nhưng chưa có đường hầm nào được thiết lập.

kState_NotInitialized

Dùng để cho biết rằng Tunnel Agent chưa được khởi động.

kState_PrimaryAndBkupTunModeEstablished

Dùng để cho biết cả đường hầm Chính và đường hầm Sao lưu đã đượ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 Tác nhân đường hầm liên quan đến(các) kết nối 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 một lớp cao hơn đặt khi nhận được Kết nối lại đường hầm từ Dịch vụ.

Thông tin chi tiết
Các 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ỏ đến đối tượng ngữ cảnh ứng dụng

OnServiceTunnelStatusNotifyFunct

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

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

Thông tin chi tiết
Các 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ỏ đến đối tượng ngữ cảnh ứng dụng

PlatformNetworkOnlineCheck

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

Con trỏ hàm đến 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
Các tham số
[in] tunType
Loại đường hầm, Chính hoặc Dự phòng.
[in] appCtxt
Con trỏ đến đối tượng ngữ cảnh ứng dụng

WeaveTunnelFlags

 WeaveTunnelFlags

Các bit cờ Weave Tunnel.

Thuộc tính
kTunnelFlag_BackupEnabled

Thiết lập 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.

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 lớp cao hơn đặt để hoạt động dựa trên 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.

Tắt Đườ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
)

Xem thời gian hệ thống theo mili giây.

Lấy 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 trạng thái hiện tại của WeaveTunnelAgent.

Bắt đầu

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

Khởi động tác nhân Tunnel (Đường hầm).

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

Bắt đầu

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

Khởi động tác nhân Tunnel (Đường hầm).

Thao tác này sẽ tạo đối tượng điểm cuối của Đường hầm, thiết lập giao diện đường hầm, khởi chạy 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 đã bật hay chưa.

Thông tin chi tiết
Trả về
true nếu giá trị này được bật, nếu không thì là 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 do 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 bị dịch vụ hạn chế định tuyến.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

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

Kiểm tra xem đường hầm có 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 dự phòng được thiết lập và cả hai đều bị dịch vụ hạn chế định tuyến.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Nền tảng sẽ gọi lệnh gọi lại khi có kết quả của công cụ kiểm tra trực tuyến mạng.

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

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
Các tham số
[in] reconnectImmediately
Đúng nếu cần để kết nối lại ngay lập tức, nếu không, sử dụng thời gian chờ đối chiếu đã định cấu hình.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Đặt WeaveAuthMode cho Đường hầm.

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

SetDestination

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

Đặt mã nút đích, IPAddress và cổng cho Đường hầm.

Đặt buttonId và IPAddress cho đường hầm.

Thông tin chi tiết
Các 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, độc lậpDevice, 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
Các tham số
[in] role
Vai trò do Tác nhân đường hầm đảm nhận; Cổng biên, Thiết bị độc lập hoặc Thiết bị di động.

Tắt

WEAVE_ERROR Shutdown(
  void
)

Hãy đóng cửa sổ Tác nhâ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.

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 nếu thành công, nếu không, hãy dùng loại WEAVE_ERROR tương ứng.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

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

Thao tác này sẽ bậ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 đặt tuyến vải đến giao diện đường hầm.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR nếu thành công, nếu không, hãy dùng 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ụ.

Thao tác này sẽ bậ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 Đường hầm với Dịch vụ.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Đóng kết nối Đường hầm với Dịch vụ.

Thông tin chi tiết
Các tham số
[in] err
WEAVE_NO_ERROR nếu không có lý do cụ thể nào 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 phân luồng qua đường hầm UDP qua lối tắt giữa cổng biên và thiết bị di động, đồng thời chuyển tiếp đến giao diện Tunnel EndPoint sau khi phân giải 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 phân luồng từ kết nối Service TCP và chuyển tiếp tới giao diện Tunnel EndPoint sau khi phân giải gói IPv6 thô từ bên trong tiêu đề đường hầm.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] message
Con trỏ đến đối tượng PacketBuffer đang giữ 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 Ứng dụng di động 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 di động qua đường hầm cục bộ.

Nếu chưa kết nối với dịch vụ, thông báo sẽ được xếp vào hàng đợi cho đến khi thiết lập xong 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 nexthop lân cận được tham chiếu.

Nếu chưa kết nối với dịch vụ, thông báo sẽ được xếp vào hàng đợi cho đến khi thiết lập xong 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 nexthop lân cận được tham chiếu.

Thông tin chi tiết
Các tham số
[in] tunEP
Con trỏ đến đối tượng TunEndPoint.
[in] message
Con trỏ đến đối tượng PacketBuffer đang giữ gói IPv6 thô.