nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr

#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>

Lớp này đóng gói tất cả trạng thái kết nối đường hầm Weave, logic và hàm quản lý liên quan.

Tóm tắt

Một thực thể của lớp này sẽ được dùng để quản lý đường hầm trên mỗi giao diện mà qua đó đường hầm Weave đến Dịch vụ sẽ tồn tại.

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

WeaveTunnelConnectionMgr(void)

Loại công khai

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
Lệnh gọi lại để tìm nạp khoảng thời gian chờ trước khi đường hầm tiếp theo kết nối lại.
TunnelConnNotifyReasons{
  kStatus_TunDown = 0,
  kStatus_TunPrimaryUp = 1,
  kStatus_TunPrimaryConnError = 2,
  kStatus_TunBackupConnError = 3,
  kStatus_TunFailoverToBackup = 4,
  kStatus_TunBackupOnlyDown = 5,
  kStatus_TunBackupUp = 6,
  kStatus_TunPrimaryAndBackupUp = 7,
  kStatus_TunPrimaryReconnectRcvd = 8,
  kStatus_TunBackupReconnectRcvd = 9,
  kStatus_TunPrimaryLiveness = 10,
  kStatus_TunBackupLiveness = 11
}
enum
TunnelConnNotifyReasons typedef
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
enum
TunnelConnectionState typedef

Thuộc tính công khai

mServiceConnDelayPolicyCallback

Hàm công khai

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
Khởi chạy WeaveTunnelConnectionMgr.
ServiceTunnelClose(WEAVE_ERROR err)
void
Đóng Đường hầm dịch vụ.
SetInterfaceName(const char *intfName)
void
Đặt InterfaceName cho kết nối Đường hầm.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Đặt SrcInterfaceType cho kết nối Đường hầm.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Dừng kết nối Đường hầm dịch vụ rồi thử kết nối lại.
TryConnectingNow(void)
Cố gắng thiết lập kết nối với Dịch vụ.

Hàm tĩnh công khai

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
Phương thức triển khai chính sách mặc định để tìm nạp lần kết nối tiếp theo với Dịch vụ.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Trình xử lý được gọi khi kết nối Service TCP kết nối.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Trình xử lý được gọi khi hoàn tất kết nối Service TCP kết nối.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
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.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Trình xử lý được gọi nếu Trình quản lý dịch vụ không thiết lập được kết nối TCP với Dịch vụ.

Loại công khai

ConnectPolicyCallback

void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)

Lệnh gọi lại để tìm nạp khoảng thời gian chờ trước khi đường hầm tiếp theo kết nối lại.

Thông tin chi tiết
Các tham số
[in] appState
Con trỏ trạng thái ứng dụng được đặt trong quá trình khởi chạy SubscriptionClient.
[in] reconnectParam
Cấu trúc có các tham số ảnh hưởng đến việc tính toán độ trễ khi kết nối lại.
[out] delayMsec
Thời gian tính bằng mili giây để chờ trước khi thử kết nối lại vào lần tiếp theo.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Thuộc tính
kStatus_TunBackupConnError

Dùng để thông báo kết nối đường hầm sao lưu không thành công hoặc một kết nối hiện có đã bị ứng dụng ngang hàng huỷ hoặc đóng cục bộ.

kStatus_TunBackupLiveness

Dùng để biểu thị thông tin về thăm dò Tunnel Liveness trên đường hầm Backup Weave.

kStatus_TunBackupOnlyDown

Dùng để cho biết đường hầm sao lưu bị gián đoạn.

kStatus_TunBackupReconnectRcvd

Dùng để cho biết Dịch vụ đã yêu cầu kết nối lại cho đường hầm Sao lưu Weave.

kStatus_TunBackupUp

Dùng để cho biết đường hầm Sao lưu của Weave đang đi lên.

kStatus_TunDown

Dùng để cho biết đường hầm Weave đã bị sập.

kStatus_TunFailoverToBackup

Được dùng để thông báo rằng đường hầm chính bị gián đoạn và đang chuyển sang đường hầm dự phòng.

kStatus_TunPrimaryAndBackupUp

Dùng để cho biết cả đường hầm Chính và đường hầm Dệt dự phòng đều hoạt động.

kStatus_TunPrimaryConnError

Dùng để cho biết rằng một cố gắng kết nối đường hầm chính đã không thành công hoặc một kết nối hiện có đã bị trình ngang hàng huỷ hoặc đóng cục bộ.

kStatus_TunPrimaryLiveness

Dùng để thể hiện thông tin về tàu thăm dò Tunnel Liveness trên đường hầm Main Weave.

kStatus_TunPrimaryReconnectRcvd

Dùng để cho biết Dịch vụ đã yêu cầu kết nối lại cho đường hầm Weave chính.

kStatus_TunPrimaryUp

Dùng để cho biết đường hầm Weave chính đang đi lên.

TunnelConnNotifyReasons

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons

TunnelConnectionState

 TunnelConnectionState
Thuộc tính
kState_Connecting

Dùng để cho biết kết nối Weave Tunnel đã được bắt đầu.

kState_ConnectionEstablished

Dùng để chỉ báo kết nối Weave Tunnel đã được thiết lập và thông tin tuyến đường đang được trao đổi.

kState_NotConnected

Dùng để cho biết rằng Đường hầm dệt chưa được kết nối.

kState_ReconnectRecvd

Dùng để cho biết rằng Dịch vụ muốn cổng biên giới kết nối lại sau khi tra cứu thư mục.

kState_TunnelClosing

Dùng để cho biết rằng đường hầm Weave Tunnel đang đóng và kết nối đang bị tháo ra.

kState_TunnelOpen

Dùng để cho biết rằng đường Weave Tunnel đã được mở và sẵn sàng cho việc chuyển giao lưu lượng dữ liệu.

TunnelConnectionState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState

Thuộc tính công khai

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Hàm công khai

Bắt đầu

WEAVE_ERROR Init(
  WeaveTunnelAgent *tunAgent,
  TunnelType tunType,
  SrcInterfaceType srcIntfType,
  const char *connIntfName
)

Khởi chạy WeaveTunnelConnectionMgr.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Đóng Đường hầm dịch vụ.

Thông tin chi tiết
Các tham số
[in] err
Một WEAVE_ERROR bị truyền từ người gọi.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Đặt InterfaceName cho kết nối Đường hầm.

Thông tin chi tiết
Các tham số
[in] tunIntf
InterfaceName để thiết lập kết nối đường hầm Dịch vụ.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Đặt SrcInterfaceType cho kết nối Đường hầm.

Thông tin chi tiết
Các tham số
[in] srcIntfType
Loại công nghệ mạng của giao diện kết nối đường hầm dịch vụ.

Tắt

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Dừng kết nối Đường hầm dịch vụ rồi thử kết nối lại.

Thông tin chi tiết
Các tham số
[in] err
Một WEAVE_ERROR bị truyền từ người gọi.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Cố gắng thiết lập kết nối với Dịch vụ.

Thử thiết lập kết nối với Dịch vụ bằng ServiceManager hoặc trực tiếp.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Hàm tĩnh công khai

DefaultReconnectPolicyCallback

void DefaultReconnectPolicyCallback(
  void *const appstate,
  ReconnectParam & reconnectParam,
  uint32_t & delayMsec
)

Phương thức triển khai chính sách mặc định để tìm nạp lần kết nối tiếp theo với Dịch vụ.

Chính sách này chọn một khe thời gian ngẫu nhiên (có độ phân giải mili giây) trong khoảng thời gian tăng dần, theo sau một trình tự fibonacci tối đa WEAVE_CONFIG_TSUBSCRIPTIONING_RECONNECT_MAX_FIBONACCI_INDEX.

Thông tin chi tiết
Các tham số
[in] appState
Con trỏ trạng thái ứng dụng được đặt trong quá trình khởi chạy SubscriptionClient.
[in] reconnectParam
Cấu trúc có các tham số ảnh hưởng đến việc tính toán độ trễ khi kết nối lại.
[out] delayMsec
Thời gian tính bằng mili giây để chờ trước khi thử kết nối lại vào lần tiếp theo.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Trình xử lý được gọi khi kết nối Service TCP kết nối.

Thiết bị cố gắng thiết lập lại kết nối với Dịch vụ nếu mServiceConKeepAlive được đặt thành true.

Sau đó, thiết bị sẽ cố gắng thiết lập lại kết nối với Dịch vụ.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] conErr
Mọi lỗi trong lỗi WeaveConnection hoặc WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Trình xử lý được gọi khi hoàn tất kết nối Service TCP kết nối.

Thiết bị tiếp tục khởi động các lệnh điều khiển Đường hầm đến Dịch vụ qua chức năng này.

Thiết bị tiếp tục khởi động các lệnh điều khiển Đường hầm đến Dịch vụ qua chức năng này.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] conErr
Mọi lỗi trong lỗi WeaveConnection hoặc WEAVE_NO_ERROR.

RecvdFromService

void RecvdFromService(
  WeaveConnection *con,
  const WeaveMessageInfo *msgInfo,
  PacketBuffer *message
)

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.

ServiceMgrStatusHandler

void ServiceMgrStatusHandler(
  void *appState,
  WEAVE_ERROR err,
  StatusReport *report
)

Trình xử lý được gọi nếu Trình quản lý dịch vụ không thiết lập được kết nối TCP với Dịch vụ.