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

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

Class ini mengenkapsulasi semua status koneksi tunnel Weave serta logika dan fungsi pengelolaan terkait.

Ringkasan

Instance class ini akan digunakan untuk mengelola tunnel di atas setiap antarmuka tempat tunnel Weave ke Layanan akan ada.

Konstruktor dan Destruktor

WeaveTunnelConnectionMgr(void)

Jenis publik

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
Callback untuk mengambil interval waktu tunggu sebelum tunnel berikutnya terhubung kembali.
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

Atribut publik

mServiceConnDelayPolicyCallback

Fungsi publik

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
Lakukan inisialisasi WeaveTunnelConnectionMgr.
ServiceTunnelClose(WEAVE_ERROR err)
void
Tutup tunnel Layanan.
SetInterfaceName(const char *intfName)
void
Menetapkan InterfaceName untuk koneksi Tunnel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Menetapkan SrcInterfaceType untuk koneksi Tunnel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Hentikan koneksi tunnel Service dan coba hubungkan kembali.
TryConnectingNow(void)
Mencoba membuat koneksi ke Layanan.

Fungsi statis publik

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
Implementasi kebijakan default untuk mengambil saat berikutnya terhubung ke Layanan.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Pengendali dipanggil saat koneksi TCP Layanan ditutup.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Pengendali dipanggil saat koneksi TCP Layanan selesai.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
Handler untuk menerima paket IPv6 yang disalurkan dari koneksi TCP Layanan dan meneruskan ke antarmuka Tunnel EndPoint setelah mendekapsulasi paket IPv6 mentah dari dalam header tunnel.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Pengendali yang dipanggil jika Pengelola Layanan gagal membuat koneksi TCP ke Layanan.

Jenis publik

ConnectPolicyCallback

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

Callback untuk mengambil interval waktu tunggu sebelum tunnel berikutnya terhubung kembali.

Detail
Parameter
[in] appState
Pointer status aplikasi yang ditetapkan selama inisialisasi SubscriptionClient.
[in] reconnectParam
Struktur dengan parameter yang memengaruhi penghitungan penundaan koneksi kembali.
[out] delayMsec
Waktu dalam milidetik untuk menunggu sebelum mencoba menghubungkan kembali berikutnya.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Properti
kStatus_TunBackupConnError

Digunakan untuk menunjukkan bahwa upaya koneksi tunnel cadangan gagal atau koneksi yang ada telah dibatalkan atau ditutup secara lokal oleh peer.

kStatus_TunBackupLiveness

Digunakan untuk menunjukkan informasi mengenai probe Keaktifan Tunnel pada terowongan Backup Weave.

kStatus_TunBackupOnlyDown

Digunakan untuk menunjukkan bahwa tunnel cadangan sedang tidak aktif.

kStatus_TunBackupReconnectRcvd

Digunakan untuk menunjukkan bahwa Layanan telah meminta koneksi ulang untuk tunnel Backup Weave.

kStatus_TunBackupUp

Digunakan untuk menunjukkan bahwa tunnel Backup Weave sudah aktif.

kStatus_TunDown

Digunakan untuk menunjukkan bahwa terowongan Weave telah mati.

kStatus_TunFailoverToBackup

Digunakan untuk menunjukkan bahwa tunnel utama tidak aktif dan telah terjadi peralihan ke tunnel cadangan.

kStatus_TunPrimaryAndBackupUp

Digunakan untuk menunjukkan bahwa tunnel Utama dan Cadangan Weave sudah aktif.

kStatus_TunPrimaryConnError

Digunakan untuk menunjukkan bahwa upaya koneksi tunnel utama telah gagal atau koneksi yang ada telah dibatalkan atau ditutup secara lokal oleh peer.

kStatus_TunPrimaryLiveness

Digunakan untuk menunjukkan informasi mengenai probe Keaktifan Terowongan di terowongan Primary Weave.

kStatus_TunPrimaryReconnectRcvd

Digunakan untuk menunjukkan bahwa Layanan telah meminta koneksi kembali untuk tunnel Primary Weave.

kStatus_TunPrimaryUp

Digunakan untuk menunjukkan bahwa terowongan Weave utama sudah aktif.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
Properti
kState_Connecting

Digunakan untuk menunjukkan bahwa koneksi Terowongan Weave telah dimulai.

kState_ConnectionEstablished

Digunakan untuk menunjukkan bahwa koneksi Terowongan Weave telah dibuat dan informasi rute sedang dipertukarkan.

kState_NotConnected

Digunakan untuk menunjukkan bahwa Terowongan Weave tidak terhubung.

kState_ReconnectRecvd

Digunakan untuk menunjukkan bahwa Layanan ingin gateway batas terhubung kembali setelah pencarian direktori.

kState_TunnelClosing

Digunakan untuk menunjukkan bahwa Weave Tunnel ditutup dan koneksi sedang diputus.

kState_TunnelOpen

Digunakan untuk menunjukkan bahwa Terowongan Weave terbuka dan siap untuk transit lalu lintas data.

TunnelConnectionState

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

Atribut publik

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Fungsi publik

Inisiasi

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

Lakukan inisialisasi WeaveTunnelConnectionMgr.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Tutup tunnel Layanan.

Detail
Parameter
[in] err
WEAVE_ERROR yang diteruskan dari penelepon.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Menetapkan InterfaceName untuk koneksi Tunnel.

Detail
Parameter
[in] tunIntf
InterfaceName untuk menyetel koneksi tunnel Layanan.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Menetapkan SrcInterfaceType untuk koneksi Tunnel.

Detail
Parameter
[in] srcIntfType
Jenis teknologi jaringan antarmuka untuk koneksi tunnel Layanan.

Nonaktif

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Hentikan koneksi tunnel Service dan coba hubungkan kembali.

Detail
Parameter
[in] err
WEAVE_ERROR yang diteruskan dari penelepon.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Mencoba membuat koneksi ke Layanan.

Coba buat koneksi ke Layanan menggunakan ServiceManager atau secara langsung.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Fungsi statis publik

DefaultReconnectPolicyCallback

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

Implementasi kebijakan default untuk mengambil saat berikutnya terhubung ke Layanan.

Kebijakan ini memilih slot waktu acak (dengan resolusi milidetik) pada jendela yang meningkat, mengikuti urutan fibonacci hingga WEAVE_CONFIG_DPCING_RECONNECT_MAX_FIBONACCI_INDEX.

Detail
Parameter
[in] appState
Pointer status aplikasi yang ditetapkan selama inisialisasi SubscriptionClient.
[in] reconnectParam
Struktur dengan parameter yang memengaruhi penghitungan penundaan koneksi kembali.
[out] delayMsec
Waktu dalam milidetik untuk menunggu sebelum mencoba menghubungkan kembali berikutnya.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Pengendali dipanggil saat koneksi TCP Layanan ditutup.

Perangkat mencoba membuat kembali koneksi ke Layanan jika mServiceConKeepAlive disetel ke benar (true).

Perangkat, kemudian, mencoba membuat kembali koneksi ke Layanan.

Detail
Parameter
[in] con
Pointer ke objek WeaveConnection.
[in] conErr
Semua error dalam WeaveConnection atau WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Pengendali dipanggil saat koneksi TCP Layanan selesai.

Perangkat melanjutkan memulai perintah kontrol Tunnel ke Layanan dari fungsi ini.

Perangkat melanjutkan memulai perintah kontrol Tunnel ke Layanan dari fungsi ini.

Detail
Parameter
[in] con
Pointer ke objek WeaveConnection.
[in] conErr
Semua error dalam WeaveConnection atau WEAVE_NO_ERROR.

RecvdFromService

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

Handler untuk menerima paket IPv6 yang disalurkan dari koneksi TCP Layanan dan meneruskan ke antarmuka Tunnel EndPoint setelah mendekapsulasi paket IPv6 mentah dari dalam header tunnel.

Detail
Parameter
[in] con
Pointer ke objek WeaveConnection.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] message
Pointer ke objek PacketBuffer yang menyimpan paket IPv6 yang disalurkan.

ServiceMgrStatusHandler

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

Pengendali yang dipanggil jika Pengelola Layanan gagal membuat koneksi TCP ke Layanan.