Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

nl::Weave::Hồ sơ::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 và logic và hàm quản lý đường liên kết.

Tóm tắt

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

Hàm dựng và hàm phá hủy

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)
ServiceTunnelClose(WEAVE_ERROR err)
void
Đóng đường hầm Dịch vụ.
SetInterfaceName(const char *intfName)
void
Đặt Giao diện tên cho đườ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ụ và 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
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 đóng kết nối TCP của Dịch vụ.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Trình xử lý đã được gọi khi quá trình kết nối Dịch vụ TCP hoàn tất.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
Trình xử lý để nhận các gói IPv6 qua đường hầm từ kết nối TCP TCP của dịch vụ và chuyển tiếp đến giao diện Tunnel EndPoint sau khi gỡ bỏ 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 thông số
[in] appState
Con trỏ trạng thái ứng dụng đã đặt trong quá trình khởi tạo ClientClient.
[in] reconnectParam
Cấu trúc có các thông 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 kết nối lại tiếp theo.

TunnelConnNotificationsReasons

 TunnelConnNotifyReasons
Thuộc tính
kStatus_TunBackupConnError

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

kStatus_TunBackupLiveness

Dùng để chỉ ra thông tin về đường thăm dò đường hầm bằng đường hầm trên đường hầm sao lưu đường hầm.

kStatus_TunBackupOnlyDown

Dùng để cho biết rằng đường hầm dự phòng đã bị hỏng.

kStatus_TunBackupReconnectRcvd

Dùng để cho biết rằng Dịch vụ đã yêu cầu kết nối lại cho đường hầm Dệt dự phòng.

kStatus_TunBackupUp

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

kStatus_TunDown

Dùng để cho biết rằng đường hầm Weave đã bị hỏng.

kStatus_TunFailoverToBackup

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

kStatus_TunPrimaryAndBackupUp

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

kStatus_TunPrimaryConnError

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

kStatus_TunPrimaryLiveness

Dùng để chỉ ra thông tin về đường thăm dò đường hầm Tạo sự sống trên đường hầm chính.

kStatus_TunPrimaryReconnectRcvd

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

kStatus_TunPrimaryUp

Dùng để chỉ ra rằng đường hầm Weave chính đã hoạt động.

TunnelConnNotificationsReasons

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

Đường hầm kết nối

 TunnelConnectionState
Thuộc tính
kState_Connecting

Dùng để cho biết rằng kết nối Đường hầm kết nối đã được bắt đầu.

kState_ConnectionEstablished

Dùng để cho biết việc kết nối đường hầm Weave đã được thiết lập và thông tin tuyến đường đang được trao đổi.

kState_NotConnected

Dùng để chỉ ra rằng đường hầm dệt không được kết nối.

kState_ReconnectRecvd

Dùng để chỉ ra 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 dệt đang đóng và đường kết nối đang bị hỏng.

kState_TunnelOpen

Dùng để biểu thị đường hầm Weave đang mở và sẵn sàng cho hoạt động vận chuyển dữ liệu.

Đường hầm kết nối

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

Thuộc tính công khai

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Hàm công khai

Số nguyên

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

Khởi tạo WeaveTunnelConnectionMgr.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

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

Thông tin chi tiết
Các thông số
[in] err
Đã gửi WEAVE_ERROR từ người gọi.

Đặt tên giao diện

void SetInterfaceName(
  const char *intfName
)

Đặt Giao diện tên cho đường hầm.

Thông tin chi tiết
Các thông số
[in] tunIntf
Tên giao diện cho việc đặt kết nối đường hầm dịch vụ.

Loại giao diện đặt

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

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

Thông tin chi tiết
Các thông số
[in] srcIntfType
Loại công nghệ mạng của giao diện cho 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ụ và thử kết nối lại.

Thông tin chi tiết
Các thông số
[in] err
Đã gửi WEAVE_ERROR từ người gọi.

Thử kết nối ngay

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 ServiceManager hoặc trực tiếp.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Hàm tĩnh công khai

Mặc địnhReConnectPolicyCallback

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

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 khung thời gian ngẫu nhiên (có độ phân giải theo mili giây) trong một khoảng thời gian tăng dần, theo sau một trình tự fibonacci lên đến WEAVE_CONFIG_TSEGMENTING_RECONNECTION_MAX_FIBONACCI_INDEX.

Thông tin chi tiết
Các thông số
[in] appState
Con trỏ trạng thái ứng dụng đã đặt trong quá trình khởi tạo ClientClient.
[in] reconnectParam
Cấu trúc có các thông 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 kết nối lại tiếp theo.

Trạng thái kết nối dịch vụ xử lý

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

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

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ị 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 thông số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] conErr
Mọi lỗi trong WeaveConnection hoặc WEAVE_NO_ERROR.

Xử lý kết nối hoàn chỉnh

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Trình xử lý đã được gọi khi quá trình kết nối Dịch vụ TCP hoàn tất.

Thiết bị tiếp tục khởi tạo 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 khởi tạo các lệnh điều khiển đường hầm đến Dịch vụ từ hàm này.

Thông tin chi tiết
Các thông số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] conErr
Mọi lỗi 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 qua đường hầm từ kết nối TCP TCP của dịch vụ và chuyển tiếp đến giao diện Tunnel EndPoint sau khi gỡ bỏ gói IPv6 thô từ bên trong tiêu đề đường hầm.

Thông tin chi tiết
Các thông 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 ở đườ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ụ.