TREL - רציף
המודול הזה כולל את הפשטת הפלטפורמה עבור Thread Radio Encapsulation Link (TREL) באמצעות DNS-SD ו-UDP/IPv6.
סיכום
ערכי דף |
|
---|---|
otPlatTrelPeerInfo
|
typedefstruct otPlatTrelPeerInfo
מייצג מידע עמית TREL שהתגלה באמצעות עיון ב-DNS-SD בשם השירות "_trel._udp". |
פונקציות |
|
---|---|
otPlatTrelDisable(otInstance *aInstance)
|
void
משביתה את שכבת הפלטפורמה TREL.
|
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
|
void
אתחול של שכבת הפלטפורמה TREL והפעלתה.
|
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
|
void
זוהי פונקציית קריאה חוזרת משכבת הפלטפורמה לדיווח על מידע בין רשתות שכנות ב-TREL שנמצאו.
|
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
|
void
זוהי התקשרות חזרה מהפלטפורמה, כדי להודיע על מנת TREL UDP שהתקבלה.
|
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
|
void
רישום שירות חדש לפרסום באמצעות DNS-SD [RFC6763].
|
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
|
void
בקשה לשליחה של חבילת TREL UDP ליעד נתון.
|
מבנים |
|
---|---|
otPlatTrelPeerInfo |
מייצג מידע עמית TREL שהתגלה באמצעות עיון ב-DNS-SD בשם השירות "_trel._udp". |
ערכי דף
otPlatTrelPeerInfo
struct otPlatTrelPeerInfo otPlatTrelPeerInfo
מייצג מידע עמית TREL שהתגלה באמצעות עיון ב-DNS-SD בשם השירות "_trel._udp".
פונקציות
otPlatTrelDisable
void otPlatTrelDisable( otInstance *aInstance )
משביתה את שכבת הפלטפורמה TREL.
לאחר הקריאה הזו, שכבת הפלטפורמה חייבת להפסיק את העיון ב-DNS-SD בשם השירות _trel._udp, להפסיק לפרסם את שירות TREL DNS-SD (מ-otPlatTrelRegisterService()
) ולסגור את שקע ה-UDP שמשמש לקבלת הודעות TREL.
[in] aInstance The OpenThread instance.
otPlatTrelEnable
void otPlatTrelEnable( otInstance *aInstance, uint16_t *aUdpPort )
אתחול של שכבת הפלטפורמה TREL והפעלתה.
במהלך הקריאה הזו, שכבת הפלטפורמה חייבת לבצע את הפעולות הבאות:
1) שכבת פלטפורמת TREL חייבת לפתוח שקע UDP כדי להאזין להודעות TREL ולקבל אותן מעמיתים. השקע מקושר למספר יציאה זמני שנבחר על ידי שכבת הפלטפורמה. חובה להחזיר את מספר היציאה ב-aUdpPort
. השקע קשור גם לממשקי הרשת שבהם יש תמיכה ב-TREL. השקע והיציאה שנבחרו יישארו בתוקף כל עוד TREL מופעל.
2) שכבת הפלטפורמה חייבת להתחיל חיפוש מתמשך של DNS-SD בשם השירות _trel._udp בדומיין הגלישה המקומי, כדי לגלות מכשירים אחרים שתומכים ב-TREL. הגלישה המתמשכת תיצור שני סוגים שונים של אירועים: אירועי 'הוספה' ו'הסרה'. בתחילת הדפדוף, הוא אמור ליצור אירוע "add" עבור כל שותף TREL שנמצא כרגע ברשת. בכל פעם שעמית TREL עובר למצב אופליין, יש ליצור אירוע "remove". עם זאת, אירועי 'הסרה' לא מובטחים. כשמתגלה מופע של שירות TREL, צריך להתחיל שאילתת DNS-SD חדשה עבור רשומת AAAA בשם המארח המצוין ברשומת ה-SRV של המכונה שהתגלתה. אם מתגלים מספר כתובות IPv6 של מארח עבור עמית, חובה לדווח על כתובת אחת עם ההיקף הגבוה ביותר מתוך כל הכתובות (אם יש מספר כתובות באותו היקף, יש לבחור אחת באופן אקראי).
פלטפורמת TREL חייבת לאותת חזרה למידע של העמיתים שנמצאו באמצעות התקשרות חזרה של otPlatTrelHandleDiscoveredPeerInfo()
. חובה להפעיל את הקריאה החוזרת (callback) כשמתבצע גילוי של עמית חדש, כשיש שינוי ברשומה קיימת (למשל, רשומת TXT חדשה, מספר יציאה חדש או כתובת IPv6 חדשה), או כשמסירים את העמיתים.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
זוהי פונקציית קריאה חוזרת משכבת הפלטפורמה לדיווח על מידע בין רשתות שכנות ב-TREL שנמצאו.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otPlatTrelHandleReceived
void otPlatTrelHandleReceived( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength )
זוהי התקשרות חזרה מהפלטפורמה, כדי להודיע על מנת TREL UDP שהתקבלה.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
otPlatTrelRegisterService
void otPlatTrelRegisterService( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength )
רישום שירות חדש לפרסום באמצעות DNS-SD [RFC6763].
שם השירות הוא "_trel._udp". הפלטפורמה צריכה להשתמש בשם מארח משלה, שבשילוב עם שם השירות ושם הדומיין המקומי של DNS-SD תקבלו את שם המכונה המלא של השירות. לדוגמה, example-host._trel._udp.local.
הדומיין שבו מופיע שם מופע השירות יהיה 'local' עבור mDNS, והוא יהיה הדומיין שמשמש לרישום שירות במקרה של שירות DNS-SD מקומי שאינו mDNS.
קריאה נוספת לפונקציה הזו מעדכנת את השירות הקודם. הוא משמש לעדכון הנתונים של רשומת ה-TXT ו/או מספר היציאה.
המאגר aTxtData
לא נשמר אחרי החזרה מהפונקציה הזו. שכבת הפלטפורמה לא יכולה לשמור את המיקום ולהעתיק את התוכן במקרה הצורך.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
otPlatTrelSend
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
בקשה לשליחה של חבילת TREL UDP ליעד נתון.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
מקורות מידע
המקור של נושאי העזר של OpenThread API הוא קוד המקור, שזמין ב-GitHub. אפשר לקרוא מידע נוסף או לתרום למסמכי התיעוד שלנו בדף מקורות מידע.