nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelConnectionMgr
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
이 클래스는 모든 Weave 터널 연결 상태와 관련 관리 로직 및 함수를 캡슐화합니다.
요약
이 클래스의 인스턴스는 서비스에 대한 Weave 터널이 존재할 각 인터페이스에 대한 터널을 관리하는 데 사용됩니다.
생성자 및 소멸자 |
|
---|---|
WeaveTunnelConnectionMgr(void)
|
공개 유형 |
|
---|---|
ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
|
typedefvoid(*
다음 터널이 다시 연결될 때까지 대기할 시간 간격을 가져오는 콜백입니다. |
TunnelConnNotifyReasons{
|
enum |
TunnelConnNotifyReasons
|
typedef |
TunnelConnectionState{
|
enum |
TunnelConnectionState
|
typedef |
공개 속성 |
|
---|---|
mServiceConnDelayPolicyCallback
|
공개 함수 |
|
---|---|
Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
|
WeaveTunnelConnectionMgr을 초기화합니다.
|
ServiceTunnelClose(WEAVE_ERROR err)
|
void
서비스 터널을 닫습니다.
|
SetInterfaceName(const char *intfName)
|
void
터널 연결을 위해 InterfaceName을 설정합니다.
|
SetInterfaceType(const SrcInterfaceType srcIntfType)
|
void
터널 연결의 SrcInterfaceType을 설정합니다.
|
Shutdown(void)
|
void
WeaveTunnelConnectionMgr을 종료합니다.
|
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
|
void
서비스 터널 연결을 중지하고 다시 연결해 보세요.
|
TryConnectingNow(void)
|
서비스 연결을 설정하려고 시도합니다.
|
공개 정적 함수 |
|
---|---|
DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
|
void
다음에 서비스에 연결하기 위해 가져오기 위한 기본 정책 구현입니다.
|
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
서비스 TCP 연결이 닫힐 때 호출되는 핸들러입니다.
|
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
서비스 TCP 연결이 완료되면 호출되는 핸들러입니다.
|
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
|
void
서비스 TCP 연결에서 터널링된 IPv6 패킷을 수신하고 터널 헤더 내부에서 원시 IPv6 패킷을 캡슐화한 후 Tunnel EndPoint 인터페이스로 전달하는 핸들러입니다.
|
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
|
void
서비스 관리자가 서비스에 대한 TCP 연결을 설정하는 데 실패하면 호출되는 핸들러입니다.
|
공개 유형
ConnectPolicyCallback
void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
다음 터널이 다시 연결될 때까지 대기할 시간 간격을 가져오는 콜백입니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
속성 | |
---|---|
kStatus_TunBackupConnError
|
백업 터널 연결 시도가 실패했거나 기존 연결이 로컬에서 취소되었거나 피어에 의해 종료되었음을 나타내는 데 사용됩니다. |
kStatus_TunBackupLiveness
|
백업 Weave 터널의 터널 활성 프로브에 대한 정보를 나타내는 데 사용됩니다. |
kStatus_TunBackupOnlyDown
|
백업 터널이 작동 중지되었음을 나타내는 데 사용됩니다. |
kStatus_TunBackupReconnectRcvd
|
서비스가 백업 Weave 터널의 재연결을 요청했음을 나타내는 데 사용됩니다. |
kStatus_TunBackupUp
|
백업 Weave 터널이 작동 중임을 나타내는 데 사용됩니다. |
kStatus_TunDown
|
Weave 터널이 작동 중지되었음을 나타내는 데 사용됩니다. |
kStatus_TunFailoverToBackup
|
기본 터널이 작동 중지되고 백업 터널로의 전환이 발생했음을 나타내는 데 사용됩니다. |
kStatus_TunPrimaryAndBackupUp
|
기본 및 백업 Weave 터널이 모두 작동 중임을 나타내는 데 사용됩니다. |
kStatus_TunPrimaryConnError
|
기본 터널 연결 시도가 실패했거나 기존 터널 연결 시도가 로컬에서 취소되었거나 피어에 의해 종료되었음을 나타내는 데 사용됩니다. |
kStatus_TunPrimaryLiveness
|
기본 Weave 터널의 터널 활성 프로브에 대한 정보를 나타내는 데 사용됩니다. |
kStatus_TunPrimaryReconnectRcvd
|
서비스가 기본 Weave 터널의 재연결을 요청했음을 나타내는 데 사용됩니다. |
kStatus_TunPrimaryUp
|
기본 Weave 터널이 작동 중임을 나타내는 데 사용됩니다. |
TunnelConnNotifyReasons
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons
TunnelConnectionState
TunnelConnectionState
속성 | |
---|---|
kState_Connecting
|
Weave 터널 연결이 시작되었음을 나타내는 데 사용됩니다. |
kState_ConnectionEstablished
|
Weave Tunnel 연결이 설정되고 경로 정보가 교환되고 있음을 나타내는 데 사용됩니다. |
kState_NotConnected
|
Weave 터널이 연결되지 않았음을 나타내는 데 사용됩니다. |
kState_ReconnectRecvd
|
디렉터리 조회 후 서비스에서 경계 게이트웨이를 다시 연결하도록 하는 데 사용됩니다. |
kState_TunnelClosing
|
Weave 터널이 닫히고 연결이 해제 중임을 나타내는 데 사용됩니다. |
kState_TunnelOpen
|
Weave 터널이 열려 있고 데이터 트래픽 전송 준비가 되었음을 나타내는 데 사용됩니다. |
TunnelConnectionState
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState
공개 속성
mServiceConnDelayPolicyCallback
ConnectPolicyCallback mServiceConnDelayPolicyCallback
공개 함수
Init
WEAVE_ERROR Init( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName )
WeaveTunnelConnectionMgr을 초기화합니다.
ServiceTunnelClose
void ServiceTunnelClose( WEAVE_ERROR err )
서비스 터널을 닫습니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
터널 연결을 위해 InterfaceName을 설정합니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
터널 연결의 SrcInterfaceType을 설정합니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
StopAndReconnectTunnelConn
void StopAndReconnectTunnelConn( ReconnectParam & reconnParam )
서비스 터널 연결을 중지하고 다시 연결해 보세요.
세부정보 | |||
---|---|---|---|
매개변수 |
|
TryConnectingNow
WEAVE_ERROR TryConnectingNow( void )
서비스 연결을 설정하려고 시도합니다.
ServiceManager를 사용하거나 직접 서비스에 연결을 설정해 보세요.
WeaveTunnelConnectionMgr
WeaveTunnelConnectionMgr( void )
공개 정적 함수
DefaultReconnectPolicyCallback
void DefaultReconnectPolicyCallback( void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec )
다음에 서비스에 연결하기 위해 가져오기 위한 기본 정책 구현입니다.
이 정책은 최대 WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX까지의 피보나치 수열을 따라 증가하는 기간 (밀리초 해상도)의 임의 시간대를 선택합니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
HandleServiceConnectionClosed
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
서비스 TCP 연결이 닫힐 때 호출되는 핸들러입니다.
mServiceConKeepAlive가 true로 설정된 경우 기기에서 서비스 연결을 다시 시도합니다.
이후 기기에서 서비스 연결을 다시 설정합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
서비스 TCP 연결이 완료되면 호출되는 핸들러입니다.
기기는 이 함수에서 서비스에 대한 터널 제어 명령어를 시작합니다.
기기는 이 함수에서 서비스에 대한 터널 제어 명령어를 시작합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
서비스 TCP 연결에서 터널링된 IPv6 패킷을 수신하고 터널 헤더 내부에서 원시 IPv6 패킷을 캡슐화한 후 Tunnel EndPoint 인터페이스로 전달하는 핸들러입니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
서비스 관리자가 서비스에 대한 TCP 연결을 설정하는 데 실패하면 호출되는 핸들러입니다.