Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl :: 짜다:: 프로필 :: 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
}
열거 형
TunnelConnNotifyReasons typedef
TunnelConnectionState {
kState_NotConnected = 0,
kState_Connecting = 1,
kState_ConnectionEstablished = 2,
kState_TunnelOpen = 3,
kState_TunnelClosing = 4,
kState_ReconnectRecvd = 5
}
열거 형
TunnelConnectionState typedef

공용 속성

mServiceConnDelayPolicyCallback

공공 기능

Init ( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
ServiceTunnelClose ( WEAVE_ERROR err)
void
서비스 터널을 닫습니다.
SetInterfaceName (const char *intfName)
void
터널 연결을위한 InterfaceName을 설정합니다.
SetInterfaceType (const SrcInterfaceType srcIntfType)
void
터널 연결을 위해 SrcInterfaceType을 설정합니다.
Shutdown (void)
void
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)

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

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

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
속성
kStatus_TunBackupConnError

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

kStatus_TunBackupLiveness

Backup Weave 터널의 Tunnel Liveness 프로브에 대한 정보를 나타내는 데 사용됩니다.

kStatus_TunBackupOnlyDown

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

kStatus_TunBackupReconnectRcvd

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

kStatus_TunBackupUp

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

kStatus_TunDown

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

kStatus_TunFailoverToBackup

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

kStatus_TunPrimaryAndBackupUp

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

kStatus_TunPrimaryConnError

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

kStatus_TunPrimaryLiveness

Primary Weave 터널의 Tunnel Liveness 프로브에 대한 정보를 나타내는 데 사용됩니다.

kStatus_TunPrimaryReconnectRcvd

서비스가 Primary 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 Tunnel이 연결되지 않았 음을 나타내는 데 사용됩니다.

kState_ReconnectRecvd

서비스가 디렉터리 조회 후 경계 게이트웨이가 다시 연결되기를 원함을 나타내는 데 사용됩니다.

kState_TunnelClosing

Weave Tunnel이 닫히고 연결이 끊어지고 있음을 나타내는 데 사용됩니다.

kState_TunnelOpen

Weave Tunnel이 열려 있고 데이터 트래픽을 전송할 준비가되었음을 나타내는 데 사용됩니다.

TunnelConnectionState

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

공용 속성

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

공공 기능

초기화

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

ServiceTunnel 닫기

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
)

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
)

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

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

ServiceMgrStatusHandler

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

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