nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelConnectionMgr
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
คลาสนี้สรุปสถานะการเชื่อมต่ออุโมงค์ข้อมูล Weave ทั้งหมด รวมถึงตรรกะและฟังก์ชันการจัดการที่เกี่ยวข้อง
สรุป
ระบบจะใช้อินสแตนซ์ของคลาสนี้เพื่อจัดการอุโมงค์ข้อมูลบนอินเทอร์เฟซแต่ละรายการที่ Weave Tunnel ไปยังบริการจะมีอยู่
ผู้ผลิตและผู้ทำลาย |
|
---|---|
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
มีการเรียกใช้ตัวแฮนเดิลเมื่อปิดการเชื่อมต่อ TCP ของบริการ
|
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
มีการเรียกใช้ตัวแฮนเดิลเมื่อการเชื่อมต่อ 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
มีการเรียกใช้เครื่องจัดการหากตัวจัดการบริการสร้างการเชื่อมต่อ TCP กับบริการไม่สำเร็จ
|
ประเภทสาธารณะ
ConnectPolicyCallback
void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
โค้ดเรียกกลับเพื่อดึงข้อมูลช่วงเวลาที่จะรอก่อนที่อุโมงค์เสมือนถัดไปจะเชื่อมต่ออีกครั้ง
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
พร็อพเพอร์ตี้ | |
---|---|
kStatus_TunBackupConnError
|
ใช้เพื่อระบุว่าการพยายามเชื่อมต่ออุโมงค์ข้อมูลสำรองล้มเหลวหรือการดำเนินการที่มีอยู่ถูกล้มเลิกหรือปิดโดยเพียร์ |
kStatus_TunBackupLiveness
|
ใช้เพื่อระบุข้อมูลเกี่ยวกับการตรวจสอบความถูกต้องของ Tunnel Liveness บนอุโมงค์ Backup Weave |
kStatus_TunBackupOnlyDown
|
ใช้เพื่อระบุว่าอุโมงค์ข้อมูลสำรองหยุดทำงาน |
kStatus_TunBackupReconnectRcvd
|
ใช้เพื่อระบุว่าบริการได้ขอให้เชื่อมต่ออุโมงค์ข้อมูล Backup Weave อีกครั้ง |
kStatus_TunBackupUp
|
ใช้เพื่อระบุว่าอุโมงค์ข้อมูล Backup Weave เริ่มทำงานแล้ว |
kStatus_TunDown
|
ใช้เพื่อระบุว่าอุโมงค์ Weave ได้หยุดทำงานลงแล้ว |
kStatus_TunFailoverToBackup
|
ใช้เพื่อระบุว่าอุโมงค์ข้อมูลหลักไม่ทำงานและมีการสลับไปยังอุโมงค์ข้อมูลสำรอง |
kStatus_TunPrimaryAndBackupUp
|
ใช้เพื่อระบุว่าทั้งอุโมงค์ข้อมูลหลักและสำรอง Weave ทำงานแล้ว |
kStatus_TunPrimaryConnError
|
ใช้เพื่อระบุว่าการพยายามเชื่อมต่ออุโมงค์ข้อมูลหลักล้มเหลว หรือการดำเนินการที่มีอยู่ถูกล้มเลิกหรือปิดโดยเพียร์ |
kStatus_TunPrimaryLiveness
|
ใช้เพื่อระบุข้อมูลเกี่ยวกับการตรวจสอบความถูกต้องของ Tunnel Liveness บนอุโมงค์ Primary 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
ฟังก์ชันสาธารณะ
เริ่มต้น
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 )
มีการเรียกใช้ตัวแฮนเดิลเมื่อปิดการเชื่อมต่อ TCP ของบริการ
อุปกรณ์จะพยายามสร้างการเชื่อมต่อกับบริการอีกครั้งหากมีการตั้งค่า mServiceConKeepAlive เป็น "จริง"
ต่อมาอุปกรณ์จะพยายามเชื่อมต่อกับบริการอีกครั้ง
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
มีการเรียกใช้ตัวแฮนเดิลเมื่อการเชื่อมต่อ TCP ของบริการเสร็จสมบูรณ์
อุปกรณ์ดำเนินการต่อเพื่อเริ่มคำสั่งควบคุม Tunnel ไปยังบริการจากฟังก์ชันนี้
อุปกรณ์ดำเนินการต่อเพื่อเริ่มคำสั่งควบคุม Tunnel ไปยังบริการจากฟังก์ชันนี้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
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 )
มีการเรียกใช้เครื่องจัดการหากตัวจัดการบริการสร้างการเชื่อมต่อ TCP กับบริการไม่สำเร็จ