TREL - רציף

המודול הזה כולל את הפשטת הפלטפורמה עבור Thread Radio Encapsulation Link (TREL) באמצעות DNS-SD ו-UDP/IPv6.

סיכום

ערכי דף

otPlatTrelPeerInfo typedef
מייצג מידע עמית 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 חדשה), או כשמסירים את העמיתים.

פרטים
פרמטרים
[in] aInstance
במכונה של OpenThread.
[out] aUdpPort
מצביע להחזרת מספר היציאה שנבחר לפי שכבת פלטפורמה.

otPlatTrelHandleDiscoveredPeerInfo

void otPlatTrelHandleDiscoveredPeerInfo(
  otInstance *aInstance,
  const otPlatTrelPeerInfo *aInfo
)

זוהי פונקציית קריאה חוזרת משכבת הפלטפורמה לדיווח על מידע בין רשתות שכנות ב-TREL שנמצאו.

פרטים
פרמטרים
[in] aInstance
במכונה של OpenThread.
[in] aInfo
מצביע על המידע של העמית ב-TREL.

otPlatTrelHandleReceived

void otPlatTrelHandleReceived(
  otInstance *aInstance,
  uint8_t *aBuffer,
  uint16_t aLength
)

זוהי התקשרות חזרה מהפלטפורמה, כדי להודיע על מנת TREL UDP שהתקבלה.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
[in] aBuffer
מאגר נתונים זמני שמכיל את המטען הייעודי (payload) של UDP שהתקבל.
[in] aLength
אורך המטען הייעודי (payload) של 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 לא נשמר אחרי החזרה מהפונקציה הזו. שכבת הפלטפורמה לא יכולה לשמור את המיקום ולהעתיק את התוכן במקרה הצורך.

פרטים
פרמטרים
[in] aInstance
במכונה של OpenThread.
[in] aPort
מספר היציאה שיש לכלול ברשומת ה-SRV של השירות שפורסם.
[in] aTxtData
הפניה לנתוני רשומת ה-TXT (מקודדים) שיש לכלול בשירות שפורסם.
[in] aTxtLength
האורך של aTxtData (מספר בייטים).

otPlatTrelSend

void otPlatTrelSend(
  otInstance *aInstance,
  const uint8_t *aUdpPayload,
  uint16_t aUdpPayloadLen,
  const otSockAddr *aDestSockAddr
)

בקשה לשליחה של חבילת TREL UDP ליעד נתון.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
[in] aUdpPayload
הפניה למטען ייעודי (payload) של UDP.
[in] aUdpPayloadLen
אורך המטען הייעודי (מספר הבייטים).
[in] aDestSockAddr
כתובת ה-socket של היעד.

מקורות מידע

המקור של נושאי העזר של OpenThread API הוא קוד המקור, שזמין ב-GitHub. אפשר לקרוא מידע נוסף או לתרום למסמכי התיעוד שלנו בדף מקורות מידע.