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
위브 터널 플래그 비트
WeaveTunnelFlags typedef
위브 터널 플래그 비트

공개 속성

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)
터널 에이전트를 초기화합니다.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
터널 에이전트를 초기화합니다.
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 연결을 통해 서비스 TCP 연결을 통해 또는 바로가기 터널을 통해 모바일 클라이언트로 IPv6 패킷을 수신하고 전달하는 핸들러입니다.

공개 유형

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

위브 터널 플래그 비트

속성
kTunnelFlag_BackupEnabled

백업 터널이 사용 설정된 경우 설정됩니다.

kTunnelFlag_BackupRestricted

백업 터널이 라우팅이 제한될 때 설정됩니다.

kTunnelFlag_PrimaryEnabled

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

kTunnelFlag_PrimaryRestricted

기본 터널의 라우팅이 제한될 때 설정됩니다.

WeaveTunnelFlags

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

위브 터널 플래그 비트

공개 속성

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
)

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

이렇게 하면 te 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
)

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

이렇게 하면 te 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 또는 독립형)을 설정합니다.

세부정보
매개변수
[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 패킷을 디캡슐화한 후 터널 엔드포인트 인터페이스로 전달하는 핸들러입니다.

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

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

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

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

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

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

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

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