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

Podsumowanie

Konstruktorzy i niszczyciele

WeaveTunnelAgent(void)

Typy publiczne

AgentState{
  kState_NotInitialized = 0,
  kState_Initialized_NoTunnel = 1,
  kState_PrimaryTunModeEstablished = 2,
  kState_BkupOnlyTunModeEstablished = 3,
  kState_PrimaryAndBkupTunModeEstablished = 4
}
enum | typ wyliczeniowy
stanów agenta tunelowego w odniesieniu do jego połączeń z Usługą.
AgentState typedef
stanów agenta tunelowego w odniesieniu do jego połączeń z Usługą.
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt) typedef
void(*
Wskaźnik funkcji do modułu obsługi ustawiany przez wyższą warstwę, gdy połączenie z tunelem zostanie odebrane z usługi.
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt) typedef
void(*
Wskaźnik funkcji do modułu obsługi ustawiony przez wyższą warstwę, aby reagował na różne powiadomienia związane z tunelem do usługi.
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt) typedef
void(*
Wskaźnik funkcji do modułu obsługi udostępnianego przez aplikację w celu sprawdzenia online na poziomie sieci.
WeaveTunnelFlags{
  kTunnelFlag_PrimaryEnabled = 0x01,
  kTunnelFlag_BackupEnabled = 0x02,
  kTunnelFlag_PrimaryRestricted = 0x04,
  kTunnelFlag_BackupRestricted = 0x08
}
enum | typ wyliczeniowy
Spleć części flagi tunelu.
WeaveTunnelFlags typedef
Spleć części flagi tunelu.

Atrybuty publiczne

NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunStatusNotify
Wskaźnik funkcji do modułu obsługi ustawiony przez wyższą warstwę, aby reagował na różne powiadomienia związane z tunelem do usługi.
mServiceMgr
WeaveServiceManager *
Wskaźnik menedżera usługi używany do wyszukiwania usługi i łączenia się z nią.

Funkcje publiczne

DisablePrimaryTunnel(void)
void
Wyłącz tunel główny.
EnablePrimaryTunnel(void)
void
Włącz główny tunel.
GetAgentStateName(const AgentState state)
const char *
Pobierz nazwę WeaveTunnelAgentState.
GetTimeMsec(void)
uint64_t
Pobiera czas systemowy w milisekundach.
GetWeaveTunnelAgentState(void)
Pobranie stanu agenta tunelu.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
Zainicjuj agenta tunelu.
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
Zainicjuj agenta tunelu.
IsPrimaryTunnelEnabled(void) const
bool
Sprawdź, czy główny tunel jest włączony.
IsPrimaryTunnelRoutingRestricted(void)
bool
Sprawdź, czy główny tunel nie podlega ograniczeniom routingu przez usługę.
IsTunnelRoutingRestricted(void)
bool
Sprawdź, czy tunel nie jest objęty ograniczeniami routingu przez usługę.
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
void
Wywołanie zwrotne wywoływane przez platformę, gdy dostępny jest wynik sprawdzania online sieci.
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
Zresetuj czas ponownego połączenia w głównym tunelu.
SetAuthMode(const WeaveAuthMode authMode)
void
Ustaw tryb WeaveAuthMode na potrzeby tunelu.
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
void
Ustaw identyfikator węzła docelowego, adres IP oraz port tunelu.
SetTunnelingDeviceRole(const Role role)
void
Ustaw rolę urządzenia do tunelowania(BorderGateway, StandaloneDevice, MobileDevice) tunelu.
Shutdown(void)
Wyłącz agenta tunelu.
StartServiceTunnel(void)
Uruchom tunel usługi.
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
Uruchom tunel usługi.
StopServiceTunnel(void)
void
Zamknij połączenie tunelowe z usługą.
StopServiceTunnel(WEAVE_ERROR err)
void
Zamknij połączenie tunelowe z usługą.

Publiczne funkcje statyczne

RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
void
Moduł obsługi do odbierania tunelowanych pakietów IPv6 przez tunel UDP skrótu między bramą graniczną a urządzeniem mobilnym oraz przekazywanie do interfejsu Tunnel EndPoint po usunięciu surowego pakietu IPv6 z nagłówka tunelu.
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
void
Moduł obsługi do odbierania pakietów IPv6 z interfejsu Tunnel EndPoint i przekazywania ich dalej do usługi przez połączenie TCP usługi po umieszczeniu pakietu IPv6 w nagłówku tunelu lub do klienta mobilnego przez tunel skrótu.

Typy publiczne

AgentState

 AgentState

stanów agenta tunelowego w odniesieniu do jego połączeń z Usługą.

Właściwości
kState_BkupOnlyTunModeEstablished

Służy do wskazania, że został utworzony tunel zapasowy do usługi.

kState_Initialized_NoTunnel

Służy do wskazania, że agent tunelu został zainicjowany, ale nie utworzono żadnego tunelu.

kState_NotInitialized

Służy do informowania, że agent tunelu nie został zainicjowany.

kState_PrimaryAndBkupTunModeEstablished

Służy do wskazywania, że utworzono zarówno tunel główny, jak i tunel zapasowy.

kState_PrimaryTunModeEstablished

Służy do informowania, że został ustanowiony główny tunel do usługi.

AgentState

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

stanów agenta tunelowego w odniesieniu do jego połączeń z Usługą.

OnServiceTunnelReconnectNotifyFunct

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

Wskaźnik funkcji do modułu obsługi ustawiany przez wyższą warstwę, gdy połączenie z tunelem zostanie odebrane z usługi.

Szczegóły
Parametry
[in] tunType
Typ tunelu: główny lub zapasowy.
[in] reconnectHost
Nazwa hosta podana przez usługę, z którą ma nastąpić ponowne połączenie.
[in] reconnectPort
Port docelowy udostępniany przez usługę, z którym ma zostać ponownie połączona.
[in] appCtxt
Wskaźnik do obiektu kontekstu aplikacji

OnServiceTunnelStatusNotifyFunct

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

Wskaźnik funkcji do modułu obsługi ustawiony przez wyższą warstwę, aby reagował na różne powiadomienia związane z tunelem do usługi.

Szczegóły
Parametry
[in] reason
Powód powiadomienia o stanie w aplikacji.
[in] err
Napotkano błąd splotu (jeśli wystąpił)
[in] appCtxt
Wskaźnik do obiektu kontekstu aplikacji

PlatformNetworkOnlineCheck

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

Wskaźnik funkcji do modułu obsługi udostępnianego przez aplikację w celu sprawdzenia online na poziomie sieci.

Szczegóły
Parametry
[in] tunType
Typ tunelu: główny lub zapasowy.
[in] appCtxt
Wskaźnik do obiektu kontekstu aplikacji

WeaveTunnelFlags

 WeaveTunnelFlags

Spleć części flagi tunelu.

Właściwości
kTunnelFlag_BackupEnabled

Ustaw, kiedy tunel zapasowy jest włączony.

kTunnelFlag_BackupRestricted

Ustaw, gdy routing zapasowy jest ograniczony.

kTunnelFlag_PrimaryEnabled

Ustaw czas włączenia tunelu głównego.

kTunnelFlag_PrimaryRestricted

Ustaw, kiedy główny tunel ma ograniczony routing.

WeaveTunnelFlags

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

Spleć części flagi tunelu.

Atrybuty publiczne

NetworkOnlineCheck

PlatformNetworkOnlineCheck NetworkOnlineCheck

OnServiceTunReconnectNotify

OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify

OnServiceTunStatusNotify

OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify

Wskaźnik funkcji do modułu obsługi ustawiony przez wyższą warstwę, aby reagował na różne powiadomienia związane z tunelem do usługi.

mServiceMgr

WeaveServiceManager * mServiceMgr

Wskaźnik menedżera usługi używany do wyszukiwania usługi i łączenia się z nią.

Funkcje publiczne

DisablePrimaryTunnel

void DisablePrimaryTunnel(
  void
)

Wyłącz tunel główny.

Wyłącz tunel główny.

EnablePrimaryTunnel

void EnablePrimaryTunnel(
  void
)

Włącz główny tunel.

Włącz tunel główny.

GetAgentStateName

const char * GetAgentStateName(
  const AgentState state
)

Pobierz nazwę WeaveTunnelAgentState.

GetTimeMsec

uint64_t GetTimeMsec(
  void
)

Pobiera czas systemowy w milisekundach.

Jeśli czas systemowy jest niedostępny, pobieraj czas systemowy lub czas monotoniczny w milisekundach.

GetWeaveTunnelAgentState

AgentState GetWeaveTunnelAgentState(
  void
)

Pobranie stanu agenta tunelu.

Szczegóły
Zwroty
AgentState to bieżący stan obiektu WeaveTunnelAgent.

Zainicjuj

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

Zainicjuj agenta tunelu.

Spowoduje to utworzenie obiektu punktu końcowego tunelu, skonfigurowanie interfejsu tunelu, zainicjowanie zmiennych członkowskich, wywołań zwrotnych i obiektu WeaveTunnelControl.

Zainicjuj

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

Zainicjuj agenta tunelu.

Spowoduje to utworzenie obiektu punktu końcowego tunelu, skonfigurowanie interfejsu tunelu, zainicjowanie zmiennych członkowskich, wywołań zwrotnych i obiektu WeaveTunnelControl.

IsPrimaryTunnelEnabled

bool IsPrimaryTunnelEnabled(
  void
) const 

Sprawdź, czy główny tunel jest włączony.

Szczegóły
Zwroty
Jeśli jest włączona, ma wartość „prawda”, a w przeciwnym razie ma wartość „fałsz”.

IsPrimaryTunnelRoutingRestricted

bool IsPrimaryTunnelRoutingRestricted(
  void
)

Sprawdź, czy główny tunel nie podlega ograniczeniom routingu przez usługę.

Sprawdź, czy główny tunel nie podlega ograniczeniom routingu.

Szczegóły
Zwroty
true, jeśli podstawowy tunel jest ustanowiony, ale podlega ograniczeniom routingu przez usługę.

IsTunnelRoutingRestricted

bool IsTunnelRoutingRestricted(
  void
)

Sprawdź, czy tunel nie jest objęty ograniczeniami routingu przez usługę.

Sprawdź, czy w tunelu nie obowiązują ograniczenia routingu.

Szczegóły
Zwroty
ma wartość true, jeśli ustanowiono tunel główny lub zapasowy i podlega ograniczeniom routingu określonym przez usługę.

NetworkOnlineCheckResult

void NetworkOnlineCheckResult(
  TunnelType tunType,
  bool isOnline
)

Wywołanie zwrotne wywoływane przez platformę, gdy dostępny jest wynik sprawdzania online sieci.

Szczegóły
Parametry
[in] tunType
Typ tunelu odpowiadający interfejsowi, w którym wykonywana jest kontrola połączenia sieciowego.
[in] isOnline
Wartość to „prawda”, jeśli sieć jest online. W przeciwnym razie ma wartość fałsz.

ResetPrimaryReconnectBackoff

WEAVE_ERROR ResetPrimaryReconnectBackoff(
  bool reconnectImmediately
)

Zresetuj czas ponownego połączenia w głównym tunelu.

Szczegóły
Parametry
[in] reconnectImmediately
Prawda, jeśli jest wymagana do natychmiastowego ponownego połączenia. W przeciwnym razie przy użyciu skonfigurowanego czasu oczekiwania na nawiązanie połączenia.

SetAuthMode

void SetAuthMode(
  const WeaveAuthMode authMode
)

Ustaw tryb WeaveAuthMode na potrzeby tunelu.

Szczegóły
Parametry
[in] authMode
Tryb uwierzytelniania Weave używany z peerem.

SetDestination

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

Ustaw identyfikator węzła docelowego, adres IP oraz port tunelu.

Ustaw identyfikator węzła docelowego i adres IP tunelu.

Szczegóły
Parametry
[in] nodeId
Identyfikator węzła węzła docelowego.
[in] ipAddr
Adres IP węzła docelowego.
[in] servicePort
Port węzła docelowego.

SetTunnelingDeviceRole

void SetTunnelingDeviceRole(
  const Role role
)

Ustaw rolę urządzenia do tunelowania(BorderGateway, StandaloneDevice, MobileDevice) tunelu.

Ustaw rolę urządzenia do tunelowania(BorderGateway lub samodzielny) dla tunelu.

Szczegóły
Parametry
[in] role
Rola przejęta przez agenta tunelu – bramę graniczną, urządzenie samodzielne lub urządzenie mobilne.

Wyłączono

WEAVE_ERROR Shutdown(
  void
)

Wyłącz agenta tunelu.

Powoduje to przerwanie połączenia z usługą i zamknięcie interfejsu TunEndPoint po usunięciu adresów i tras powiązanych z interfejsem tunelu.

Powoduje to przerwanie połączenia z usługą i zamknięcie interfejsu TunEndPoint po usunięciu adresów i tras powiązanych z interfejsem tunelu.

Szczegóły
Zwroty
Błąd WEAVE_NO_ERROR. W przeciwnym razie odpowiedni typ błędu WEAVE_ERROR.

StartServiceTunnel

WEAVE_ERROR StartServiceTunnel(
  void
)

Uruchom tunel usługi.

Powoduje to włączenie tunelu i próba nawiązania połączenia z usługą.

Próbuje to nawiązać połączenie z usługą, a także ustawia trasę tkaniny na interfejs tunelu.

Szczegóły
Zwroty
Błąd WEAVE_NO_ERROR. W przeciwnym razie odpowiedni typ błędu WEAVE_ERROR.

StartServiceTunnel

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

Uruchom tunel usługi.

Powoduje to włączenie tunelu i próba nawiązania połączenia z usługą.

StopServiceTunnel

void StopServiceTunnel(
  void
)

Zamknij połączenie tunelowe z usługą.

StopServiceTunnel

void StopServiceTunnel(
  WEAVE_ERROR err
)

Zamknij połączenie tunelowe z usługą.

Szczegóły
Parametry
[in] err
WEAVE_NO_ERROR, jeśli nie ma konkretnej przyczyny dla tego żądania StopServiceTunnel. W przeciwnym razie przyczyna błędu zostanie przekazana.

WeaveTunnelAgent

 WeaveTunnelAgent(
  void
)

Publiczne funkcje statyczne

RecvdFromShortcutUDPTunnel

void RecvdFromShortcutUDPTunnel(
  WeaveMessageLayer *msgLayer,
  PacketBuffer *message
)

Moduł obsługi do odbierania tunelowanych pakietów IPv6 przez tunel UDP skrótu między bramą graniczną a urządzeniem mobilnym oraz przekazywanie do interfejsu Tunnel EndPoint po usunięciu surowego pakietu IPv6 z nagłówka tunelu.

Moduł obsługi do odbierania tunelowanych pakietów IPv6 z połączenia TCP usługi i do interfejsu Tunnel EndPoint po usunięciu surowego pakietu IPv6 z nagłówka tunelu.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] message
Wskaźnik do obiektu PacketBuffer, w którym znajduje się tunelowany pakiet IPv6.

RecvdFromTunnelEndPoint

void RecvdFromTunnelEndPoint(
  TunEndPoint *tunEP,
  PacketBuffer *message
)

Moduł obsługi do odbierania pakietów IPv6 z interfejsu Tunnel EndPoint i przekazywania ich dalej do usługi przez połączenie TCP usługi po umieszczeniu pakietu IPv6 w nagłówku tunelu lub do klienta mobilnego przez tunel skrótu.

Moduł obsługi do odbierania pakietów IPv6 z interfejsu Tunnel EndPoint i przekazywania ich dalej do usługi przez połączenie TCP usługi po otoczeniu pakietu IPv6 w nagłówku tunelu lub do klienta mobilnego przez tunel lokalny.

Jeśli połączenie z usługą nie zostało jeszcze skonfigurowane, wiadomość zostanie umieszczona w kolejce do czasu skonfigurowania połączenia. W przypadku tunelowania do urządzenia mobilnego klienta odwołuje się do tabeli sąsiadów następnego przeskoku.

Jeśli połączenie z usługą nie zostało jeszcze skonfigurowane, wiadomość zostanie umieszczona w kolejce do czasu skonfigurowania połączenia. W przypadku tunelowania do urządzenia mobilnego klienta odwołuje się do tabeli sąsiadów następnego przeskoku.

Szczegóły
Parametry
[in] tunEP
Wskaźnik do obiektu TunEndPoint.
[in] message
Wskaźnik do obiektu PacketBuffer, w którym znajduje się nieprzetworzony pakiet IPv6.