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 setiap antarmuka tempat tunnel Weave ke Service berada.

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 Service.
SetInterfaceName(const char *intfName)
void
Setel InterfaceName untuk koneksi Tunnel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Menyetel SrcInterfaceType untuk koneksi Tunnel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Hentikan koneksi tunnel Layanan dan coba hubungkan kembali.
TryConnectingNow(void)
Berupaya membuat koneksi ke Layanan.

Fungsi statis publik

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
Implementasi kebijakan default untuk mengambil waktu berikutnya untuk 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
Pengendali 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 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 disetel selama inisialisasi SubscriptionClient.
[in] reconnectParam
Struktur dengan parameter yang memengaruhi penghitungan penundaan koneksi kembali.
[out] delayMsec
Waktu dalam milidetik untuk menunggu sebelum upaya penyambungan ulang berikutnya.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Properti
kStatus_TunBackupConnError

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

kStatus_TunBackupLiveness

Digunakan untuk menunjukkan informasi tentang pemeriksaan Keaktifan Terowongan di 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 Weave Cadangan.

kStatus_TunBackupUp

Digunakan untuk menunjukkan bahwa tunnel Weave Pencadangan sudah aktif.

kStatus_TunDown

Digunakan untuk menunjukkan bahwa terowongan Weave telah turun.

kStatus_TunFailoverToBackup

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

kStatus_TunPrimaryAndBackupUp

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

kStatus_TunPrimaryConnError

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

kStatus_TunPrimaryLiveness

Digunakan untuk menunjukkan informasi tentang pemeriksaan Keaktifan Terowongan di terowongan Primary Weave.

kStatus_TunPrimaryReconnectRcvd

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

kStatus_TunPrimaryUp

Digunakan untuk menunjukkan bahwa terowongan Weave utama sudah naik.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
Properti
kState_Connecting

Digunakan untuk menunjukkan bahwa koneksi Weave Tunnel telah dimulai.

kState_ConnectionEstablished

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

kState_NotConnected

Digunakan untuk menunjukkan bahwa Weave Tunnel 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 Weave Tunnel terbuka dan siap untuk transit lalu lintas data.

TunnelConnectionState

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

Atribut publik

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Fungsi publik

Init

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

Lakukan inisialisasi WeaveTunnelConnectionMgr.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Tutup tunnel Service.

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

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Setel InterfaceName untuk koneksi Tunnel.

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

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Menyetel 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 Layanan dan coba hubungkan kembali.

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

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Berupaya 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 waktu berikutnya untuk terhubung ke Layanan.

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

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

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Pengendali dipanggil saat koneksi TCP Layanan ditutup.

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

Kemudian, perangkat mencoba membuat kembali koneksi ke Layanan.

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

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Pengendali dipanggil saat koneksi TCP Layanan selesai.

Perangkat akan melanjutkan perintah kontrol Tunnel ke Service dari fungsi ini.

Perangkat akan melanjutkan perintah kontrol Tunnel ke Service dari fungsi ini.

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

RecvdFromService

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

Pengendali 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 dipanggil jika Pengelola Layanan gagal membuat koneksi TCP ke Layanan.