nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr

#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>

Bu sınıf, tüm Weave tüneli bağlantı durumlarını ve ilişkili yönetim mantığı ile işlevlerini içerir.

Özet

Hizmete giden Weave tünelinin geçtiği her arayüzde tüneli yönetmek için bu sınıfın bir örneği kullanılır.

Oluşturucular ve Yıkıcılar

WeaveTunnelConnectionMgr(void)

Herkese açık türler

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
Bir sonraki tünele yeniden bağlanmadan önce beklenecek zaman aralığını getirmek için geri çağırma.
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

Herkese açık özellikler

mServiceConnDelayPolicyCallback

Kamu işlevleri

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
WeaveTunnelConnectionMgr parametresini başlatın.
ServiceTunnelClose(WEAVE_ERROR err)
void
Hizmet tünelini kapatın.
SetInterfaceName(const char *intfName)
void
Tunnel bağlantısı için InterfaceName ayarlayın.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Tünel bağlantısı için SrcInterfaceType'ı ayarlayın.
Shutdown(void)
void
WeaveTunnelConnectionMgr parametresini kapatın.
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Hizmet tüneli bağlantısını durdurun ve yeniden bağlanmayı deneyin.
TryConnectingNow(void)
Hizmet ile bağlantı kurmayı deneyin.

Herkese açık statik işlevler

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
Hizmete bir sonraki bağlanma işleminde getirme için varsayılan politika uygulaması.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Hizmet TCP bağlantısı kapatıldığında işleyici çağrılır.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Hizmet TCP bağlantısı tamamlandığında işleyici çağrılır.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
İşleyici. Hizmet TCP bağlantısından tünelli IPv6 paketlerini alacak ve ham IPv6 paketinin kopyasını tünel başlığının içinden çıkardıktan sonra Tünel EndPoint arayüzüne iletecektir.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Hizmet Yöneticisi, Hizmet'e TCP bağlantısı kuramazsa işleyici çağrılır.

Herkese açık türler

ConnectPolicyCallback

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

Bir sonraki tünele yeniden bağlanmadan önce beklenecek zaman aralığını getirmek için geri çağırma.

Ayrıntılar
Parametreler
[in] appState
SubscriptionClient başlatma sırasında ayarlanan uygulama durumu işaretçisi.
[in] reconnectParam
Yeniden bağlantı gecikmesinin hesaplanmasını etkileyen parametrelerle yapı oluşturun.
[out] delayMsec
Bir sonraki yeniden bağlanma denemesinden önce beklenecek süre (milisaniye cinsinden).

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Özellikler
kStatus_TunBackupConnError

Bir yedek tünel bağlantı girişiminin başarısız olduğunu veya mevcut bir girişimin yerel olarak iptal edildiğini ya da eş tarafından kapatıldığını belirtmek için kullanılır.

kStatus_TunBackupLiveness

Yedek Örgü tünelindeki Tünel Yayın Durumu kontrolüyle ilgili bilgileri göstermek için kullanılır.

kStatus_TunBackupOnlyDown

Yedek tünelin devre dışı olduğunu belirtmek için kullanılır.

kStatus_TunBackupReconnectRcvd

Hizmetin, Yedek Weave tüneline yeniden bağlanma isteğinde bulunduğunu belirtmek için kullanılır.

kStatus_TunBackupUp

Yedek Weave tünelinin açık olduğunu belirtmek için kullanılır.

kStatus_TunDown

Weave tünelinin çöktüğünü göstermek için kullanılır.

kStatus_TunFailoverToBackup

Birincil tünelin devre dışı olduğunu ve yedek tünele geçiş yapıldığını göstermek için kullanılır.

kStatus_TunPrimaryAndBackupUp

Hem Birincil hem de Yedek Örgü tünelinin açık olduğunu belirtmek için kullanılır.

kStatus_TunPrimaryConnError

Birincil tünel bağlantı girişiminin başarısız olduğunu veya mevcut bir bağlantı girişiminin yerel olarak iptal edildiğini ya da eş tarafından kapatıldığını belirtmek için kullanılır.

kStatus_TunPrimaryLiveness

Birincil Örgü tünelindeki Tünel Yayın Durumu kontrolüyle ilgili bilgileri göstermek için kullanılır.

kStatus_TunPrimaryReconnectRcvd

Hizmetin Birincil Weave tüneline yeniden bağlanma isteğinde bulunduğunu belirtmek için kullanılır.

kStatus_TunPrimaryUp

Birincil Weave tünelinin açık olduğunu belirtmek için kullanılır.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
Özellikler
kState_Connecting

Weave Tunnel bağlantısının başlatıldığını belirtmek için kullanılır.

kState_ConnectionEstablished

Weave Tüneli bağlantısının kurulduğunu ve rota bilgilerinin paylaşıldığını göstermek için kullanılır.

kState_NotConnected

Weave Tüneli'nin bağlı olmadığını göstermek için kullanılır.

kState_ReconnectRecvd

Hizmetin, dizin araması sonrasında sınır ağ geçidinin yeniden bağlanmasını istediğini belirtmek için kullanılır.

kState_TunnelClosing

Weave Tüneli'nin kapandığını ve bağlantının sonlandırıldığını belirtmek için kullanılır.

kState_TunnelOpen

Weave Tüneli'nin açık ve veri trafiği aktarımına hazır olduğunu belirtmek için kullanılır.

TunnelConnectionState

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

Herkese açık özellikler

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Kamu işlevleri

Başlat

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

WeaveTunnelConnectionMgr parametresini başlatın.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Hizmet tünelini kapatın.

Ayrıntılar
Parametreler
[in] err
Arayandan bir WEAVE_ERROR geldi.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Tunnel bağlantısı için InterfaceName ayarlayın.

Ayrıntılar
Parametreler
[in] tunIntf
Hizmet tüneli bağlantısını ayarlamak için kullanılan InterfaceName.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Tünel bağlantısı için SrcInterfaceType'ı ayarlayın.

Ayrıntılar
Parametreler
[in] srcIntfType
Hizmet tüneli bağlantısı arayüzünün ağ teknolojisi türü.

Kapat

void Shutdown(
  void
)

WeaveTunnelConnectionMgr parametresini kapatın.

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Hizmet tüneli bağlantısını durdurun ve yeniden bağlanmayı deneyin.

Ayrıntılar
Parametreler
[in] err
Arayandan bir WEAVE_ERROR geldi.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Hizmet ile bağlantı kurmayı deneyin.

ServiceManager'ı kullanarak veya doğrudan hizmet ile bağlantı kurmayı deneyin.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Herkese açık statik işlevler

DefaultReconnectPolicyCallback

void DefaultReconnectPolicyCallback(
  void *const appstate,
  ReconnectParam & reconnectParam,
  uint32_t & delayMsec
)

Hizmete bir sonraki bağlanma işleminde getirme için varsayılan politika uygulaması.

Bu politika, WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX değerine kadar bir fibonacci dizisini takip ederek, artan bir zaman aralığında rastgele bir zaman dilimi (milisaniyelik çözünürlüğe sahip) seçer.

Ayrıntılar
Parametreler
[in] appState
SubscriptionClient başlatma sırasında ayarlanan uygulama durumu işaretçisi.
[in] reconnectParam
Yeniden bağlantı gecikmesinin hesaplanmasını etkileyen parametrelerle yapı oluşturun.
[out] delayMsec
Bir sonraki yeniden bağlanma denemesinden önce beklenecek süre (milisaniye cinsinden).

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Hizmet TCP bağlantısı kapatıldığında işleyici çağrılır.

mServiceConKeepAlive Doğru değerine ayarlanırsa cihaz, Hizmet ile bağlantıyı yeniden kurmaya çalışır.

Bunun ardından cihaz, Hizmet ile bağlantıyı yeniden kurmaya çalışır.

Ayrıntılar
Parametreler
[in] con
WeaveConnection nesnesine işaret eden bir işaretçi.
[in] conErr
WeaveConnection veya WEAVE_NO_ERROR ile ilgili herhangi bir hata.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Hizmet TCP bağlantısı tamamlandığında işleyici çağrılır.

Cihaz, bu işlevden Hizmet'e Tünel kontrolü komutlarını başlatır.

Cihaz, bu işlevden Hizmet'e Tünel kontrolü komutlarını başlatır.

Ayrıntılar
Parametreler
[in] con
WeaveConnection nesnesine işaret eden bir işaretçi.
[in] conErr
WeaveConnection veya WEAVE_NO_ERROR ile ilgili herhangi bir hata.

RecvdFromService

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

İşleyici. Hizmet TCP bağlantısından tünelli IPv6 paketlerini alacak ve ham IPv6 paketinin kopyasını tünel başlığının içinden çıkardıktan sonra Tünel EndPoint arayüzüne iletecektir.

Ayrıntılar
Parametreler
[in] con
WeaveConnection nesnesine işaret eden bir işaretçi.
[in] msgInfo
WeaveMessageInfo nesnesine işaret eden bir işaret.
[in] message
Tünelli IPv6 paketini tutan PacketBuffer nesnesinin işaretçisi.

ServiceMgrStatusHandler

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

Hizmet Yöneticisi, Hizmet'e TCP bağlantısı kuramazsa işleyici çağrılır.