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

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

Lớp này đóng gói tất cả các trạng thái kết nối đường hầm Weave, logic và các 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à phá huỷ

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

Các 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 Tunnel.
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
Quy trình triển khai chính sách mặc định để tìm nạp lần tiếp theo để kết nối với Dịch vụ.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Trình xử lý được gọi khi kết nối TCP của dịch vụ bị đóng.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Trình xử lý được gọi khi hoàn tất kết nối TCP.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
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.
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.

Chi tiết
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ễ kết nối lại.
[out] delayMsec
Thời gian tính bằng mili giây để chờ trước lần thử kết nối lại tiếp theo.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Thuộc tính
kStatus_TunBackupConnError

Dùng để cho biết một nỗ lực kết nối đường hầm dự phòng không thành công hoặc một nỗ lực hiện có đã bị hủy bỏ hoặc đóng cục bộ bởi các ứng dụng ngang hàng.

kStatus_TunBackupLiveness

Dùng để chỉ báo thông tin về đầu dò Tunnel Liveness trên đường hầm Backup Weave.

kStatus_TunBackupOnlyDown

Dùng để cho biết rằng đường hầm sao lưu đang hoạt động.

kStatus_TunBackupReconnectRcvd

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

kStatus_TunBackupUp

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

kStatus_TunDown

Được dùng để chỉ báo rằng đường hầm Weave đã đi xuống.

kStatus_TunFailoverToBackup

Dùng để cho biết rằng đường hầm chính bị hỏng và đã diễn ra quá trình chuyển đổi sang đường hầm dự phòng.

kStatus_TunPrimaryAndBackupUp

Dùng để cho biết cả đường hầm Primary và Backup Weave đều đi lên.

kStatus_TunPrimaryConnError

Dùng để cho biết một nỗ lực kết nối đường hầm chính không thành công hoặc một nỗ lực hiện có đã bị hủy bỏ hoặc đóng cục bộ bởi các ứng dụng ngang hàng.

kStatus_TunPrimaryLiveness

Dùng để chỉ báo thông tin về đầu dò Tunnel Liveness trên đường hầm Primary 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 Primary Weave.

kStatus_TunPrimaryUp

Dùng để cho biết đường hầm Weave chính đ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 rằng quá trình kết nối Weave Tunnel đã được bắt đầu.

kState_ConnectionEstablished

Dùng để cho biết rằng đường kết nối Weave Tunnel đã được thiết lập và thông tin về tuyến đường đang được trao đổi.

kState_NotConnected

Dùng để chỉ báo rằng Đường hầm Weave 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

Được dùng để chỉ báo rằng Đường hầm Weave đang đóng và kết nối đang bị ngắt.

kState_TunnelOpen

Được dùng để biểu thị rằng Đường hầm Weave đang mở và sẵn sàng cho lưu lượng truy cập dữ liệu chuyển tuyến.

TunnelConnectionState

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

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

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Hàm công khai

Init

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ụ.

Chi tiết
Tham số
[in] err
Một WEAVE_ERROR được phương thức gọi chuyển vào.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

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

Chi tiết
Tham số
[in] tunIntf
Giao diệnName để 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 Tunnel.

Chi tiết
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.

Chi tiết
Tham số
[in] err
Một WEAVE_ERROR được phương thức gọi chuyển vào.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

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

Cố gắng thiết lập kết nối với Dịch vụ bằng cách sử dụ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
)

Quy trình triển khai chính sách mặc định để tìm nạp lần tiếp theo để kết nối với Dịch vụ.

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

Chi tiết
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ễ kết nối lại.
[out] delayMsec
Thời gian tính bằng mili giây để chờ trước lần thử kết nối lại tiếp theo.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Trình xử lý được gọi khi kết nối TCP của dịch vụ bị đóng.

Thiết bị sẽ 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ẽ tìm cách thiết lập lại kết nối với Dịch vụ.

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] conErr
Lỗi bất kỳ trong 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 TCP.

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

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

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] conErr
Lỗi bất kỳ trong 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 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.

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.

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ụ.