nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelConnectionMgr
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
คลาสนี้สรุปสถานะการเชื่อมต่ออุโมงค์ข้อมูล Weave ทั้งหมด ตลอดจนตรรกะและฟังก์ชันการจัดการที่เกี่ยวข้อง
สรุป
อินสแตนซ์ของคลาสนี้จะใช้เพื่อจัดการอุโมงค์ข้อมูลบนอินเทอร์เฟซแต่ละรายการที่อุโมงค์ Weave ไปยังบริการจะมีอยู่
ผู้ผลิตและผู้ทำลาย |
|
---|---|
WeaveTunnelConnectionMgr(void)
|
ประเภทสาธารณะ |
|
---|---|
ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
|
Typedefvoid(*
ติดต่อกลับเพื่อดึงข้อมูลช่วงเวลาที่ต้องรอก่อนอุโมงค์ข้อมูลถัดไปจะเชื่อมต่ออีกครั้ง |
TunnelConnNotifyReasons{
|
enum |
TunnelConnNotifyReasons
|
Typedef |
TunnelConnectionState{
|
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 สำหรับการเชื่อมต่อ Tunnel
|
SetInterfaceType(const SrcInterfaceType srcIntfType)
|
void
ตั้งค่า SrcInterfaceType สำหรับการเชื่อมต่อ Tunnel
|
Shutdown(void)
|
void
|
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
|
void
หยุดการเชื่อมต่อทันเนลบริการแล้วลองเชื่อมต่ออีกครั้ง
|
TryConnectingNow(void)
|
พยายามสร้างการเชื่อมต่อกับบริการ
|
ฟังก์ชันสาธารณะแบบคงที่ |
|
---|---|
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 แบบ Tunnel จากการเชื่อมต่อ Service TCP และส่งต่อไปยังอินเทอร์เฟซ Tunnel EndPoint หลังจากถอดรหัสแพ็กเก็ต IPv6 ดิบจากในส่วนหัวของอุโมงค์ข้อมูล
|
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
|
void
มีการเรียกใช้เครื่องจัดการหาก Service Manager สร้างการเชื่อมต่อ TCP กับบริการไม่สำเร็จ
|
ประเภทสาธารณะ
ConnectPolicyCallback
void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
ติดต่อกลับเพื่อดึงข้อมูลช่วงเวลาที่ต้องรอก่อนอุโมงค์ข้อมูลถัดไปจะเชื่อมต่ออีกครั้ง
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
พร็อพเพอร์ตี้ | |
---|---|
kStatus_TunBackupConnError
|
ใช้เพื่อระบุว่าความพยายามเชื่อมต่ออุโมงค์ข้อมูลสำรองล้มเหลว หรือเพียร์ที่มีอยู่มีการล้มเลิกหรือปิดโดยเพียร์ที่มีอยู่ |
kStatus_TunBackupLiveness
|
ใช้เพื่อระบุข้อมูลเกี่ยวกับการตรวจสอบ Tunnel Liveness ใน Tunnel Weave Tunnel |
kStatus_TunBackupOnlyDown
|
ใช้เพื่อระบุว่าอุโมงค์ข้อมูลสำรองหยุดทำงาน |
kStatus_TunBackupReconnectRcvd
|
ใช้เพื่อระบุว่าบริการได้ส่งคำขอเชื่อมต่อใหม่สำหรับอุโมงค์ข้อมูล Backup Weave |
kStatus_TunBackupUp
|
ใช้เพื่อระบุว่าอุโมงค์ข้อมูลการสำรองข้อมูล Weave ทำงานแล้ว |
kStatus_TunDown
|
ใช้เพื่อระบุว่าอุโมงค์ Weave พังลงแล้ว |
kStatus_TunFailoverToBackup
|
ใช้เพื่อระบุว่าอุโมงค์ข้อมูลหลักหยุดทำงานและเปลี่ยนไปใช้อุโมงค์ข้อมูลสำรองแล้ว |
kStatus_TunPrimaryAndBackupUp
|
ใช้เพื่อระบุว่าอุโมงค์ข้อมูล Weave ทั้งหลักและสำรองพร้อมใช้งาน |
kStatus_TunPrimaryConnError
|
ใช้เพื่อระบุว่าความพยายามเชื่อมต่ออุโมงค์ข้อมูลหลักล้มเหลว หรือเพียร์ที่มีอยู่มีการล้มเลิกหรือปิดโดยเพียร์ที่มีอยู่ |
kStatus_TunPrimaryLiveness
|
ใช้เพื่อระบุข้อมูลเกี่ยวกับการตรวจสอบ Tunnel Liveness บนอุโมงค์ Weave หลัก |
kStatus_TunPrimaryReconnectRcvd
|
ใช้เพื่อระบุว่าบริการได้ส่งคำขอเชื่อมต่ออุโมงค์ Weave หลักอีกครั้ง |
kStatus_TunPrimaryUp
|
ใช้เพื่อระบุว่าอุโมงค์ข้อมูล Weave หลักกำลังทำงานอยู่ |
TunnelConnNotifyReasons
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
ฟังก์ชันสาธารณะ
Init
WEAVE_ERROR Init( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName )
เริ่มต้น WeaveTunnelConnectionMgr
ServiceTunnelClose
void ServiceTunnelClose( WEAVE_ERROR err )
ปิดอุโมงค์ข้อมูลบริการ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
ตั้งค่า InterfaceName สำหรับการเชื่อมต่อ Tunnel
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
ตั้งค่า SrcInterfaceType สำหรับการเชื่อมต่อ Tunnel
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
StopAndReconnectTunnelConn
void StopAndReconnectTunnelConn( ReconnectParam & reconnParam )
หยุดการเชื่อมต่อทันเนลบริการแล้วลองเชื่อมต่ออีกครั้ง
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
TryConnectingNow
WEAVE_ERROR TryConnectingNow( void )
พยายามสร้างการเชื่อมต่อกับบริการ
ลองเชื่อมต่อกับบริการโดยใช้ ServiceManager หรือทำโดยตรง
WeaveTunnelConnectionMgr
WeaveTunnelConnectionMgr( void )
ฟังก์ชันสาธารณะแบบคงที่
DefaultReconnectPolicyCallback
void DefaultReconnectPolicyCallback( void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec )
การใช้นโยบายเริ่มต้นสำหรับการดึงข้อมูลครั้งต่อไปเพื่อเชื่อมต่อกับบริการ
นโยบายนี้เลือกช่วงเวลาแบบสุ่ม (ที่มีความละเอียดเป็นมิลลิวินาที) ในช่วงกรอบเวลาที่เพิ่มขึ้น โดยเรียงตามลำดับฟีโบนักชีจนถึง WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
HandleServiceConnectionClosed
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
เรียกใช้เครื่องจัดการเมื่อปิดการเชื่อมต่อ Service TCP
อุปกรณ์จะพยายามเริ่มต้นการเชื่อมต่อกับบริการอีกครั้งหากมีการตั้งค่า mServiceConKeepAlive เป็น "จริง"
หลังจากนั้น อุปกรณ์จะพยายามเชื่อมต่อบริการอีกครั้ง
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
เรียกใช้เครื่องจัดการเมื่อการเชื่อมต่อ Service TCP เสร็จสมบูรณ์
อุปกรณ์จะดำเนินการเริ่มต้นคำสั่งการควบคุมอุโมงค์ข้อมูลไปยังบริการจากฟังก์ชันนี้
อุปกรณ์จะดำเนินการเริ่มต้นคำสั่งการควบคุมอุโมงค์ข้อมูลไปยังบริการจากฟังก์ชันนี้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
ตัวแฮนเดิลเพื่อรับแพ็กเก็ต IPv6 แบบ Tunnel จากการเชื่อมต่อ Service TCP และส่งต่อไปยังอินเทอร์เฟซ Tunnel EndPoint หลังจากถอดรหัสแพ็กเก็ต IPv6 ดิบจากในส่วนหัวของอุโมงค์ข้อมูล
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
มีการเรียกใช้เครื่องจัดการหาก Service Manager สร้างการเชื่อมต่อ TCP กับบริการไม่สำเร็จ