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) typedef
void(*
다음 터널이 다시 연결되기 전에 대기할 시간 간격을 가져오는 콜백입니다.
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

공개 속성

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
터널링된 IPv6 패킷을 서비스 TCP 연결에서 수신하고 터널 헤더 내부에서 원시 IPv6 패킷을 디캡슐화한 후 터널 엔드포인트 인터페이스로 전달하는 핸들러입니다.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
서비스 관리자가 서비스에 대한 TCP 연결을 설정하지 못한 경우에 호출되는 핸들러입니다.

공개 유형

ConnectPolicyCallback

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

다음 터널이 다시 연결되기 전에 대기할 시간 간격을 가져오는 콜백입니다.

세부정보
매개변수
[in] appState
SubscriptionClient를 초기화하는 동안 설정된 앱 상태 포인터입니다.
[in] reconnectParam
재연결 지연 계산에 영향을 주는 매개변수가 있는 구조입니다.
[out] delayMsec
다음 재연결 시도 전에 대기하는 시간(밀리초)입니다.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
속성
kStatus_TunBackupConnError

백업 터널 연결 시도가 실패했거나 기존 터널 연결 시도가 피어에 의해 로컬에서 취소되거나 닫혔음을 나타내는 데 사용됩니다.

kStatus_TunBackupLiveness

백업 Weave 터널의 터널 활성 프로브에 대한 정보를 나타내는 데 사용됩니다.

kStatus_TunBackupOnlyDown

백업 터널이 다운되었음을 나타내는 데 사용됩니다.

kStatus_TunBackupReconnectRcvd

서비스가 Backup Weave 터널에 대한 재연결을 요청했음을 나타내는 데 사용됩니다.

kStatus_TunBackupUp

Backup Weave 터널이 작동 중임을 나타내는 데 사용됩니다.

kStatus_TunDown

Weave 터널이 다운되었음을 나타내는 데 사용됩니다.

kStatus_TunFailoverToBackup

기본 터널이 다운되고 백업 터널로 전환되었음을 나타내는 데 사용됩니다.

kStatus_TunPrimaryAndBackupUp

기본 및 백업 Weave 터널이 모두 작동 중임을 나타내는 데 사용됩니다.

kStatus_TunPrimaryConnError

기본 터널 연결 시도가 실패했거나 기존 터널 연결 시도가 피어에 의해 로컬에서 취소되거나 닫혔음을 나타내는 데 사용됩니다.

kStatus_TunPrimaryLiveness

기본 위브 터널의 터널 활성 프로브에 대한 정보를 나타내는 데 사용됩니다.

kStatus_TunPrimaryReconnectRcvd

서비스가 기본 Weave 터널에 대한 재연결을 요청했음을 나타내는 데 사용됩니다.

kStatus_TunPrimaryUp

기본 Weave 터널이 작동 중임을 나타내는 데 사용됩니다.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
속성
kState_Connecting

Weave Tunnel 연결이 시작되었음을 나타내는 데 사용됩니다.

kState_ConnectionEstablished

Weave Tunnel 연결이 설정되고 경로 정보가 교환되고 있음을 나타내는 데 사용됩니다.

kState_NotConnected

Weave 터널이 연결되지 않았음을 나타내는 데 사용됩니다.

kState_ReconnectRecvd

서비스에서 디렉터리 조회 후 보더 게이트웨이를 다시 연결하고 싶어 함을 나타내는 데 사용됩니다.

kState_TunnelClosing

위브 터널이 닫히고 있으며 연결이 해제되고 있음을 나타내는 데 사용됩니다.

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
)

서비스 터널을 닫습니다.

세부정보
매개변수
[in] err
호출자로부터 WEAVE_ERROR가 전달되었습니다.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

터널 연결을 위한 InterfaceName을 설정합니다.

세부정보
매개변수
[in] tunIntf
서비스 터널 연결을 설정하기 위한 InterfaceName입니다.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

터널 연결에 SrcInterfaceType을 설정합니다.

세부정보
매개변수
[in] srcIntfType
서비스 터널 연결을 위한 인터페이스의 네트워크 기술 유형입니다.

종료

void Shutdown(
  void
)

WeaveTunnelConnectionMgr을 종료합니다.

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

서비스 터널 연결을 중지하고 다시 연결을 시도합니다.

세부정보
매개변수
[in] err
호출자로부터 WEAVE_ERROR가 전달되었습니다.

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까지 피보나치 시퀀스를 따라 증가하는 기간 동안 밀리초 해상도의 임의의 타임슬롯을 선택합니다.

세부정보
매개변수
[in] appState
SubscriptionClient를 초기화하는 동안 설정된 앱 상태 포인터입니다.
[in] reconnectParam
재연결 지연 계산에 영향을 주는 매개변수가 있는 구조입니다.
[out] delayMsec
다음 재연결 시도 전에 대기하는 시간(밀리초)입니다.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

서비스 TCP 연결이 닫힐 때 호출되는 핸들러입니다.

기기는 mServiceConKeepAlive가 true로 설정된 경우 서비스에 대한 연결을 다시 시도합니다.

이어서 기기에서 서비스에 다시 연결을 시도합니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] conErr
WeaveConnection 또는 WEAVE_NO_ERROR 내의 모든 오류입니다.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

서비스 TCP 연결이 완료될 때 호출되는 핸들러입니다.

기기는 이 기능에서 서비스에 대한 터널 제어 명령을 시작합니다.

기기는 이 기능에서 서비스에 대한 터널 제어 명령을 시작합니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] conErr
WeaveConnection 또는 WEAVE_NO_ERROR 내의 모든 오류입니다.

RecvdFromService

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

터널링된 IPv6 패킷을 서비스 TCP 연결에서 수신하고 터널 헤더 내부에서 원시 IPv6 패킷을 디캡슐화한 후 터널 엔드포인트 인터페이스로 전달하는 핸들러입니다.

세부정보
매개변수
[in] con
WeaveConnection 객체에 대한 포인터입니다.
[in] msgInfo
WeaveMessageInfo 객체에 대한 포인터입니다.
[in] message
터널링된 IPv6 패킷을 보유하는 PacketBuffer 객체에 대한 포인터입니다.

ServiceMgrStatusHandler

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

서비스 관리자가 서비스에 대한 TCP 연결을 설정하지 못한 경우에 호출되는 핸들러입니다.