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)
|
typedefvoid(*
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{
|
enum |
TunnelConnNotifyReasons
|
typedef |
TunnelConnectionState{
|
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ố |
|
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ố |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
Đặt InterfaceName cho kết nối Đường hầm.
Chi tiết | |||
---|---|---|---|
Tham số |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
Đặt SrcInterfaceType cho kết nối Tunnel.
Chi tiết | |||
---|---|---|---|
Tham số |
|
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ố |
|
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ố |
|
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ố |
|
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ố |
|
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ố |
|
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ụ.