ไม่มี:: สาน:: โปรไฟล์:: สานอุโมงค์:: WeaveTunnelConnectionMgr

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

คลาสนี้สรุปสถานะการเชื่อมต่อ Weave tunnel และตรรกะการจัดการและฟังก์ชันที่เกี่ยวข้อง

สรุป

อินสแตนซ์ของคลาสนี้จะใช้เพื่อจัดการช่องสัญญาณผ่านแต่ละอินเทอร์เฟซซึ่งช่องสัญญาณสานไปยังบริการจะมีอยู่

ตัวสร้างและตัวทำลาย

WeaveTunnelConnectionMgr (void)

ประเภทสาธารณะ

ConnectPolicyCallback )(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
โทรกลับเพื่อเรียกช่วงเวลาเพื่อรอก่อนการเชื่อมต่ออุโมงค์ถัดไป
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

คุณลักษณะสาธารณะ

mServiceConnDelayPolicyCallback

งานสาธารณะ

Init ( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
เริ่มต้น WeaveTunnelConnectionMgr
ServiceTunnelClose ( WEAVE_ERROR err)
void
ปิดอุโมงค์บริการ
SetInterfaceName (const char *intfName)
void
ตั้งค่า InterfaceName สำหรับการเชื่อมต่อทันเนล
SetInterfaceType (const SrcInterfaceType srcIntfType)
void
ตั้งค่า SrcInterfaceType สำหรับการเชื่อมต่อทันเนล
Shutdown (void)
void
StopAndReconnectTunnelConn ( ReconnectParam & reconnParam)
void
หยุดการเชื่อมต่อช่องสัญญาณบริการและพยายามเชื่อมต่อใหม่อีกครั้ง
TryConnectingNow (void)
พยายามสร้างการเชื่อมต่อกับบริการ

ฟังก์ชั่นคงที่สาธารณะ Public

DefaultReconnectPolicyCallback (void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
การใช้งานนโยบายเริ่มต้นสำหรับการดึงข้อมูลในครั้งต่อไปเพื่อเชื่อมต่อกับบริการ
HandleServiceConnectionClosed ( WeaveConnection *con, WEAVE_ERROR conErr)
void
ตัวจัดการถูกเรียกใช้เมื่อปิดการเชื่อมต่อ Service TCP
HandleServiceConnectionComplete ( WeaveConnection *con, WEAVE_ERROR conErr)
void
ตัวจัดการถูกเรียกเมื่อการเชื่อมต่อ Service TCP เสร็จสมบูรณ์
RecvdFromService ( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
ตัวจัดการเพื่อรับแพ็กเก็ต IPv6 แบบทันเนลจากการเชื่อมต่อ Service TCP และส่งต่อไปยังอินเทอร์เฟซ Tunnel EndPoint หลังจากแยกแพ็กเก็ต IPv6 ดิบจากภายในส่วนหัวของช่องสัญญาณ
ServiceMgrStatusHandler (void *appState, WEAVE_ERROR err, StatusReport *report)
void
ตัวจัดการถูกเรียกใช้หากตัวจัดการบริการไม่สามารถสร้างการเชื่อมต่อ TCP กับบริการได้

ประเภทสาธารณะ

ConnectPolicyCallback

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

โทรกลับเพื่อเรียกช่วงเวลาเพื่อรอก่อนการเชื่อมต่ออุโมงค์ถัดไป

รายละเอียด
พารามิเตอร์
[in] appState
ตัวชี้สถานะแอปถูกตั้งค่าระหว่างการเริ่มต้น SubscriptionClient
[in] reconnectParam
โครงสร้างพร้อมพารามิเตอร์ที่มีผลต่อการคำนวณความล่าช้าในการเชื่อมต่อใหม่
[out] delayMsec
เวลาในหน่วยมิลลิวินาทีเพื่อรอก่อนที่จะพยายามเชื่อมต่อใหม่ครั้งถัดไป

อุโมงค์ConnNotifyเหตุผล

 TunnelConnNotifyReasons
คุณสมบัติ
kStatus_TunBackupConnError

ใช้เพื่อระบุว่าความพยายามในการเชื่อมต่ออุโมงค์สำรองล้มเหลว หรือการเชื่อมต่อที่มีอยู่ถูกยกเลิกหรือปิดโดยเพียร์

kStatus_TunBackupLiveness

ใช้เพื่อระบุข้อมูลเกี่ยวกับโพรบ Tunnel Liveness บนอุโมงค์ Backup Weave

kStatus_TunBackupOnlyDown

ใช้เพื่อระบุว่าช่องสัญญาณสำรองไม่ทำงาน

kStatus_TunBackupReconnectRcvd

ใช้เพื่อระบุว่าบริการได้ร้องขอการเชื่อมต่อใหม่สำหรับอุโมงค์ข้อมูลสำรอง

kStatus_TunBackupUp

ใช้เพื่อระบุว่าช่องสัญญาณ Backup Weave เปิดใช้งานแล้ว

kStatus_TunDown

ใช้เพื่อระบุว่าอุโมงค์สานได้ลงไปแล้ว

kStatus_TunFailoverToBackup

ใช้เพื่อระบุว่าช่องสัญญาณหลักไม่ทำงานและเกิดการสลับไปใช้ช่องสัญญาณสำรอง

kStatus_TunPrimaryAndBackupUp

ใช้เพื่อระบุว่าทั้งช่องสัญญาณหลักและช่องสัญญาณสำรองเปิดอยู่

kStatus_TunPrimaryConnError

ใช้เพื่อระบุว่าความพยายามในการเชื่อมต่อทันเนลหลักล้มเหลว หรือความพยายามที่มีอยู่ถูกยกเลิกหรือปิดโดยเพียร์

kStatus_TunPrimaryLiveness

ใช้เพื่อระบุข้อมูลเกี่ยวกับโพรบ Tunnel Liveness บนอุโมงค์ Primary Weave

kStatus_TunPrimaryReconnectRcvd

ใช้เพื่อระบุว่าบริการได้ร้องขอการเชื่อมต่อใหม่สำหรับช่องสัญญาณหลัก

kStatus_TunPrimaryUp

ใช้เพื่อระบุว่าอุโมงค์ทอหลักเปิดขึ้น

อุโมงค์ConnNotifyเหตุผล

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

TunnelConnectionState

 TunnelConnectionState
คุณสมบัติ
kState_Connecting

ใช้เพื่อระบุว่าการเชื่อมต่อ Weave Tunnel เริ่มต้นขึ้น

kState_ConnectionEstablished

ใช้เพื่อระบุว่ามีการสร้างการเชื่อมต่อ Weave Tunnel และกำลังแลกเปลี่ยนข้อมูลเส้นทาง

kState_NotConnected

ใช้เพื่อระบุว่า Weave Tunnel ไม่ได้เชื่อมต่อ

kState_ReconnectRecvd

ใช้เพื่อระบุว่าบริการต้องการให้เกตเวย์ชายแดนเชื่อมต่อใหม่หลังจากการค้นหาไดเรกทอรี

kState_TunnelClosing

ใช้เพื่อระบุว่า Weave Tunnel กำลังปิดและการเชื่อมต่อกำลังถูกรื้อออก

kState_TunnelOpen

ใช้เพื่อระบุว่า Weave Tunnel เปิดและพร้อมสำหรับการรับส่งข้อมูล

TunnelConnectionState

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

คุณลักษณะสาธารณะ

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

งานสาธารณะ

ในนั้น

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

เริ่มต้น WeaveTunnelConnectionMgr

บริการอุโมงค์ปิด

void ServiceTunnelClose(
  WEAVE_ERROR err
)

ปิดอุโมงค์บริการ

รายละเอียด
พารามิเตอร์
[in] err
WEAVE_ERROR ส่งผ่านมาจากผู้โทร

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

ตั้งค่า InterfaceName สำหรับการเชื่อมต่อทันเนล

รายละเอียด
พารามิเตอร์
[in] tunIntf
InterfaceName สำหรับการตั้งค่าการเชื่อมต่อช่องสัญญาณบริการ

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

ตั้งค่า SrcInterfaceType สำหรับการเชื่อมต่อทันเนล

รายละเอียด
พารามิเตอร์
[in] srcIntfType
ชนิดเทคโนโลยีเครือข่ายของอินเทอร์เฟซสำหรับการเชื่อมต่อช่องสัญญาณบริการ

ปิดตัวลง

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

หยุดการเชื่อมต่อช่องสัญญาณบริการและพยายามเชื่อมต่อใหม่อีกครั้ง

รายละเอียด
พารามิเตอร์
[in] err
WEAVE_ERROR ส่งผ่านมาจากผู้โทร

ลองเชื่อมต่อตอนนี้

WEAVE_ERROR TryConnectingNow(
  void
)

พยายามสร้างการเชื่อมต่อกับบริการ

พยายามสร้างการเชื่อมต่อกับบริการโดยใช้ ServiceManager หรือโดยตรง

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

ฟังก์ชั่นคงที่สาธารณะ Public

DefaultReconnectPolicyCallback

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

การใช้งานนโยบายเริ่มต้นสำหรับการดึงข้อมูลในครั้งต่อไปเพื่อเชื่อมต่อกับบริการ

นโยบายนี้เลือกช่วงเวลาแบบสุ่ม (ด้วยความละเอียดระดับมิลลิวินาที) ในช่วงเวลาที่เพิ่มขึ้น โดยทำตามลำดับฟีโบนักชีจนถึง WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX

รายละเอียด
พารามิเตอร์
[in] appState
ตัวชี้สถานะแอปถูกตั้งค่าระหว่างการเริ่มต้น SubscriptionClient
[in] reconnectParam
โครงสร้างพร้อมพารามิเตอร์ที่มีผลต่อการคำนวณความล่าช้าในการเชื่อมต่อใหม่
[out] delayMsec
เวลาในหน่วยมิลลิวินาทีเพื่อรอก่อนที่จะพยายามเชื่อมต่อใหม่ครั้งถัดไป

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

ตัวจัดการถูกเรียกใช้เมื่อปิดการเชื่อมต่อ Service TCP

อุปกรณ์พยายามสร้างการเชื่อมต่อกับบริการใหม่หากตั้งค่า mServiceConKeepAlive เป็น true

ต่อมา อุปกรณ์พยายามสร้างการเชื่อมต่อกับบริการอีกครั้ง

รายละเอียด
พารามิเตอร์
[in] con
ตัวชี้ไปยัง WeaveConnection วัตถุ
[in] conErr
ข้อผิดพลาดใด ๆ ภายใน WeaveConnection หรือ WEAVE_NO_ERROR

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

ตัวจัดการถูกเรียกเมื่อการเชื่อมต่อ Service TCP เสร็จสมบูรณ์

อุปกรณ์จะเริ่มต้นคำสั่งควบคุมทันเนลไปยังบริการจากฟังก์ชันนี้

อุปกรณ์จะเริ่มต้นคำสั่งควบคุมทันเนลไปยังบริการจากฟังก์ชันนี้

รายละเอียด
พารามิเตอร์
[in] con
ตัวชี้ไปยัง WeaveConnection วัตถุ
[in] conErr
ข้อผิดพลาดใด ๆ ภายใน WeaveConnection หรือ WEAVE_NO_ERROR

RecvdFromService

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

ตัวจัดการเพื่อรับแพ็กเก็ต IPv6 แบบทันเนลจากการเชื่อมต่อ Service TCP และส่งต่อไปยังอินเทอร์เฟซ Tunnel EndPoint หลังจากแยกแพ็กเก็ต IPv6 ดิบจากภายในส่วนหัวของช่องสัญญาณ

รายละเอียด
พารามิเตอร์
[in] con
ตัวชี้ไปยัง WeaveConnection วัตถุ
[in] msgInfo
ตัวชี้ไปยัง WeaveMessageInfo วัตถุ
[in] message
ตัวชี้ไปยังอ็อบเจ็กต์ PacketBuffer ที่เก็บแพ็กเก็ต IPv6 แบบทันเนล

ServiceMgrStatusHandler

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

ตัวจัดการถูกเรียกใช้หากตัวจัดการบริการไม่สามารถสร้างการเชื่อมต่อ TCP กับบริการได้