nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent

요약

생성자 및 소멸자

WeaveTunnelAgent(void)

공개 유형

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum
서비스와의 연결과 관련된 터널 에이전트의 상태입니다.
AgentState typedef
서비스와의 연결과 관련된 터널 에이전트의 상태입니다.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
서비스에서 터널 재연결을 수신할 때 상위 레이어에서 설정한 핸들러에 대한 함수 포인터입니다.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
서비스에 대한 터널과 관련된 다양한 알림을 처리하기 위해 상위 레이어에서 설정한 핸들러에 대한 함수 포인터입니다.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
네트워크 수준 온라인 확인을 수행하기 위해 애플리케이션에서 제공하는 핸들러에 대한 함수 포인터입니다.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum
Weave Tunnel 플래그 비트입니다.
WeaveTunnelFlags typedef
Weave Tunnel 플래그 비트입니다.

공개 속성

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
서비스에 대한 터널과 관련된 다양한 알림을 처리하기 위해 상위 레이어에서 설정한 핸들러에 대한 함수 포인터입니다.
mServiceMgr
WeaveServiceManager *
서비스를 조회하고 연결하는 데 사용하는 서비스 관리자 포인터입니다.

공개 함수

DisablePrimaryTunnel(void)
void
기본 터널을 사용 중지합니다.
EnablePrimaryTunnel(void)
void
기본 터널을 사용 설정합니다.
GetAgentStateName(const AgentState state)
const char *
WeaveTunnelAgentState 이름을 가져옵니다.
GetTimeMsec(void)
uint64_t
시스템 시간을 밀리초 단위로 가져옵니다.
GetWeaveTunnelAgentState(void)
TunnelAgent 상태를 가져옵니다.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Tunnel 에이전트를 초기화합니다.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Tunnel 에이전트를 초기화합니다.
IsPrimaryTunnelEnabled(void) const
bool
기본 터널이 사용 설정되었는지 확인합니다.
IsPrimaryTunnelRoutingRestricted(void)
bool
기본 터널에 서비스의 라우팅 제한이 적용되는지 확인합니다.
IsTunnelRoutingRestricted(void)
bool
터널에 서비스의 라우팅 제한이 적용되는지 확인합니다.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
네트워크 온라인 검사기 결과를 사용할 수 있을 때 플랫폼에서 호출하는 콜백입니다.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
기본 터널의 재연결 시간을 재설정합니다.
SetAuthMode(const WeaveAuthMode authMode)
void
터널에 WeaveAuthMode를 설정합니다.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
터널의 대상 nodeId, IPAddress, 포트를 설정합니다.
SetTunnelingDeviceRole(const Role role)
void
터널에 대해 터널링 기기 역할(BorderGateway, StandaloneDevice, MobileDevice)을 설정합니다.
Shutdown(void)
터널 에이전트를 종료합니다.
StartServiceTunnel(void)
서비스 터널을 시작합니다.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
서비스 터널을 시작합니다.
StopServiceTunnel(void)
void
서비스에 대한 터널 연결을 닫습니다.
StopServiceTunnel(WEAVE_ERROR err)
void
서비스에 대한 터널 연결을 닫습니다.

공개 정적 함수

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
핸들러는 경계 게이트웨이와 휴대기기 사이의 단축 UDP 터널을 통해 터널링된 IPv6 패킷을 수신하고, 터널 헤더 내부에서 원시 IPv6 패킷을 디캡슐화한 후 터널 엔드포인트 인터페이스로 전달합니다.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
터널 헤더 내에서 IPv6 패킷을 캡슐화한 후 서비스 TCP 연결을 통해 서비스 또는 단축 터널을 통해 모바일 클라이언트로 전달하는 핸들러입니다.

공개 유형

AgentState

 AgentState

서비스와의 연결과 관련된 터널 에이전트의 상태입니다.

속성
kState_BkupOnlyTunModeEstablished

서비스에 대한 백업 터널이 설정되었음을 나타내는 데 사용됩니다.

kState_Initialized_NoTunnel

터널 에이전트가 초기화되었지만 터널이 설정되지 않았음을 나타내는 데 사용됩니다.

kState_NotInitialized

터널 에이전트가 초기화되지 않았음을 나타내는 데 사용됩니다.

kState_PrimaryAndBkupTunModeEstablished

기본 및 백업 터널이 모두 설정되었음을 나타내는 데 사용됩니다.

kState_PrimaryTunModeEstablished

서비스의 기본 터널이 설정되었음을 나타내는 데 사용됩니다.

AgentState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::AgentState AgentState

서비스와의 연결과 관련된 터널 에이전트의 상태입니다.

OnServiceTunnelReconnectNotifyFunct

void(* OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)

서비스에서 터널 재연결을 수신할 때 상위 레이어에서 설정한 핸들러에 대한 함수 포인터입니다.

세부정보
매개변수
[in] tunType
터널 유형(기본 또는 백업)입니다.
[in] reconnectHost
다시 연결할 서비스에서 제공한 호스트 이름입니다.
[in] reconnectPort
다시 연결할 서비스에서 제공하는 대상 포트입니다.
[in] appCtxt
애플리케이션 컨텍스트 객체를 가리키는 포인터

OnServiceTunnelStatusNotifyFunct

void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)

서비스에 대한 터널과 관련된 다양한 알림을 처리하기 위해 상위 레이어에서 설정한 핸들러에 대한 함수 포인터입니다.

세부정보
매개변수
[in] reason
애플리케이션에 상태 알림이 표시되는 이유입니다.
[in] err
Weave 오류가 발생했습니다.
[in] appCtxt
애플리케이션 컨텍스트 객체를 가리키는 포인터

PlatformNetworkOnlineCheck

void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)

네트워크 수준 온라인 확인을 수행하기 위해 애플리케이션에서 제공하는 핸들러에 대한 함수 포인터입니다.

세부정보
매개변수
[in] tunType
터널 유형(기본 또는 백업)입니다.
[in] appCtxt
애플리케이션 컨텍스트 객체를 가리키는 포인터

WeaveTunnelFlags

 WeaveTunnelFlags

Weave Tunnel 플래그 비트입니다.

속성
kTunnelFlag_BackupEnabled

백업 터널이 사용 설정될 때 설정됩니다.

kTunnelFlag_BackupRestricted

백업 터널의 라우팅이 제한되는 시점을 설정합니다.

kTunnelFlag_PrimaryEnabled

기본 터널이 사용 설정될 때 설정됩니다.

kTunnelFlag_PrimaryRestricted

기본 터널의 라우팅이 제한되는 시점을 설정합니다.

WeaveTunnelFlags

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags

Weave Tunnel 플래그 비트입니다.

공개 속성

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

서비스에 대한 터널과 관련된 다양한 알림을 처리하기 위해 상위 레이어에서 설정한 핸들러에 대한 함수 포인터입니다.

mServiceMgr

WeaveServiceManager * mServiceMgr

서비스를 조회하고 연결하는 데 사용하는 서비스 관리자 포인터입니다.

공개 함수

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

기본 터널을 사용 중지합니다.

기본 터널을 사용 중지합니다.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

기본 터널을 사용 설정합니다.

기본 터널을 사용 설정합니다.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

WeaveTunnelAgentState 이름을 가져옵니다.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

시스템 시간을 밀리초 단위로 가져옵니다.

시스템 시간을 사용할 수 없는 경우 시스템 시간 또는 단조 시간(밀리초)을 가져옵니다.

를 통해 개인정보처리방침을 정의할 수 있습니다.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

TunnelAgent 상태를 가져옵니다.

세부정보
반환
AgentState는 WeaveTunnelAgent의 현재 상태입니다.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  WeaveAuthMode authMode,
  WeaveServiceManager *svcMgr,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Tunnel 에이전트를 초기화합니다.

그러면 터널 엔드포인트 객체가 생성되고, 터널 인터페이스가 설정되고, 멤버 변수, 콜백, WeaveTunnelControl이 초기화됩니다.

Init

WEAVE_ERROR Init(
  InetLayer *inet,
  WeaveExchangeManager *exchMgr,
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode,
  const char *intfName,
  uint8_t role,
  void *appContext
)

Tunnel 에이전트를 초기화합니다.

그러면 터널 엔드포인트 객체가 생성되고, 터널 인터페이스가 설정되고, 멤버 변수, 콜백, WeaveTunnelControl이 초기화됩니다.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

기본 터널이 사용 설정되었는지 확인합니다.

세부정보
반환
사용 설정된 경우 true이고, 그렇지 않으면 false입니다.

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

기본 터널에 서비스의 라우팅 제한이 적용되는지 확인합니다.

기본 터널에 라우팅 제한이 적용되는지 확인합니다.

세부정보
반환
기본 터널이 설정되었지만 서비스의 라우팅 제한이 적용되는 경우 true입니다.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

터널에 서비스의 라우팅 제한이 적용되는지 확인합니다.

터널에 라우팅 제한이 적용되는지 확인합니다.

세부정보
반환
기본 또는 백업 터널이 설정되고 둘 중 하나가 서비스의 라우팅 제한의 영향을 받는 경우 true입니다.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

네트워크 온라인 검사기 결과를 사용할 수 있을 때 플랫폼에서 호출하는 콜백입니다.

세부정보
매개변수
[in] tunType
네트워크 연결 검사가 수행되는 인터페이스에 해당하는 터널 유형입니다.
[in] isOnline
네트워크가 온라인 상태이면 true, 그렇지 않으면 false입니다.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

기본 터널의 재연결 시간을 재설정합니다.

세부정보
매개변수
[in] reconnectImmediately
즉시 다시 연결하는 데 필요한 경우 true이며, 그렇지 않은 경우 구성된 재연결 제한 시간을 사용합니다.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

터널에 WeaveAuthMode를 설정합니다.

세부정보
매개변수
[in] authMode
피어와 함께 사용되는 Weave 인증 모드입니다.

SetDestination

void SetDestination(
  const uint64_t nodeId,
  const IPAddress ipAddr,
  const uint16_t servicePort
)

터널의 대상 nodeId, IPAddress, 포트를 설정합니다.

터널의 대상 nodeId 및 IPAddress를 설정합니다.

세부정보
매개변수
[in] nodeId
대상 노드의 노드 ID입니다.
[in] ipAddr
대상 노드의 IP 주소입니다.
[in] servicePort
대상 노드의 포트입니다.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

터널에 대해 터널링 기기 역할(BorderGateway, StandaloneDevice, MobileDevice)을 설정합니다.

터널에 대해 터널링 기기 역할(BorderGateway vs 독립형)을 설정합니다.

세부정보
매개변수
[in] role
터널 에이전트가 맡는 역할입니다. 보더 게이트웨이, 독립형 또는 모바일 디바이스.

종료

WEAVE_ERROR Shutdown(
  void
)

터널 에이전트를 종료합니다.

이렇게 하면 터널 인터페이스와 연결된 주소와 경로를 삭제한 후 서비스에 대한 연결이 끊어지고 TunEndPoint 인터페이스가 닫힙니다.

이렇게 하면 터널 인터페이스와 연결된 주소와 경로를 삭제한 후 서비스에 대한 연결이 끊어지고 TunEndPoint 인터페이스가 닫힙니다.

세부정보
반환
성공 시 WEAVE_NO_ERROR, 그렇지 않은 경우 해당 WEAVE_ERROR 유형입니다.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

서비스 터널을 시작합니다.

그러면 터널이 사용 설정되고 서비스에 대한 연결 설정이 시도됩니다.

그러면 서비스에 대한 연결을 설정하려고 시도하고 패브릭 경로가 터널 인터페이스로 설정됩니다.

세부정보
반환
성공 시 WEAVE_NO_ERROR, 그렇지 않은 경우 해당 WEAVE_ERROR 유형입니다.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  uint64_t dstNodeId,
  IPAddress dstIPAddr,
  WeaveAuthMode authMode
)

서비스 터널을 시작합니다.

그러면 터널이 사용 설정되고 서비스에 대한 연결 설정이 시도됩니다.

StopServiceTunnel

void StopServiceTunnel(
  void
)

서비스에 대한 터널 연결을 닫습니다.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

서비스에 대한 터널 연결을 닫습니다.

세부정보
매개변수
[in] err
이 StopServiceTunnel 요청에 대한 특별한 이유가 없는 경우 WEAVE_NO_ERROR를 반환하고 그렇지 않으면 오류의 원인을 전달합니다.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

공개 정적 함수

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

핸들러는 경계 게이트웨이와 휴대기기 사이의 단축 UDP 터널을 통해 터널링된 IPv6 패킷을 수신하고, 터널 헤더 내부에서 원시 IPv6 패킷을 디캡슐화한 후 터널 엔드포인트 인터페이스로 전달합니다.

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

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

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

터널 헤더 내에서 IPv6 패킷을 캡슐화한 후 서비스 TCP 연결을 통해 서비스 또는 단축 터널을 통해 모바일 클라이언트로 전달하는 핸들러입니다.

터널 헤더 내에서 IPv6 패킷을 캡슐화한 후 서비스 TCP 연결을 통해 서비스 또는 로컬 터널을 통해 모바일 클라이언트로 전달하는 핸들러입니다.

서비스 연결이 아직 설정되지 않은 경우 연결이 설정될 때까지 메시지가 큐에 추가됩니다. 모바일 클라이언트 디바이스에 대한 터널링의 경우, 다음 홉 이웃 테이블이 참조됩니다.

서비스 연결이 아직 설정되지 않은 경우 연결이 설정될 때까지 메시지가 큐에 추가됩니다. 모바일 클라이언트 디바이스에 대한 터널링의 경우, 다음 홉 이웃 테이블이 참조됩니다.

세부정보
매개변수
[in] tunEP
TunEndPoint 객체에 대한 포인터입니다.
[in] message
원시 IPv6 패킷이 있는 PacketBuffer 객체에 대한 포인터입니다.