הצגה וניהול של מערכי נתונים עם OT CLI

הצגת המקור ב-GitHub

פרמטרים של הגדרת רשת של פרוטוקול Thread מנוהלים באמצעות האפשרות 'פעיל' ו'בהמתנה' אובייקטים תפעוליים של מערך נתונים. OT CLI כולל פקודות להפעלה ולהגדרה של 'פעיל' ומערכי נתונים בהמתנה.

אזהרה - הגבלות על שימוש בסביבת הייצור!

פקודות ה-CLI לכתיבה או שינוי של מערכי הנתונים התפעוליים 'פעילים' ו'בהמתנה' עשויות לאפשר הגדרה של פרמטרים לא חוקיים, או שילובים לא חוקיים של פרמטרים, למטרות בדיקה. אפשר להשתמש רק בפקודות הבאות ב-CLI:

  • כדי להגדיר פרמטרים של רשת למכשיר הראשון ברשת פרוטוקול Thread חדשה שנוצרה.
  • לצורך בדיקה (לא רלוונטי למכשירים בסביבת ייצור).

ברשתות Thread בתחום הייצור, השיטה הנכונה לכתיבה או לשינוי של מערכי נתונים תפעוליים היא Commissioner שמבצע עמלה. מכשירים בסביבת ייצור שהם לא נציבים פעילים, שהם חלק של רשת פרוטוקול Thread לא יכולים לשנות את מערכי הנתונים התפעוליים בשום צורה.

מערך נתונים תפעולי פעיל

מערך הנתונים התפעולי הפעיל כולל פרמטרים שנמצאים כרגע בשימוש בכל רשת פרוטוקול Thread. מערך הנתונים התפעולי הפעיל מכיל:

  • חותמת זמן פעילה
  • ערוץ
  • מסכת ערוצים
  • מזהה מספר חשבון קבוע מורחב
  • קידומת מסוג Mesh-Local
  • שם הרשת
  • מספר חשבון קבוע (PAN)
  • PSKc
  • מדיניות האבטחה

כדי להגדיר בקלות מכשיר כך שיהיה חבר מלא ברשת פרוטוקול Thread: יכול להשתמש בפקודה dataset active -x כדי מקבלים TLV בקידוד הקסדצימלי, הפקודה dataset active מחזירה להגדיר את מערך הנתונים במכשיר חדש.

במכשיר קיים, מקבלים את ה-TLV בקידוד הקסדצימלי:

dataset active -x
0e080000000000010000000300001035060004001fffe00208e227ac6a7f24052f0708fdb753eb517cb4d3051062b2442a928d9ea3b947a1618fc4085a030f4f70656e5468726561642d393837330102987304105330d857354330133c05e1fd7ae81a910c0402a0f7f8
Done

במכשיר חדש, מגדירים את מערך הנתונים הפעיל:

dataset set active 0e080000000000010000000300001035060004001fffe00208e227ac6a7f24052f0708fdb753eb517cb4d3051062b2442a928d9ea3b947a1618fc4085a030f4f70656e5468726561642d393837330102987304105330d857354330133c05e1fd7ae81a910c0402a0f7f8
Done

מערך הנתונים התפעולי בהמתנה

מערך הנתונים התפעולי שנמצא בהמתנה משמש להעברת שינויים במערך הנתונים הפעיל מערך נתונים תפעולי לפני שהם נכנסים לתוקף. מערך הנתונים התפעולי בהמתנה מכיל את כל הפרמטרים ממערך הנתונים התפעולי הפעיל, הוספה של:

  • עיכוב בטיימר
  • חותמת זמן בהמתנה

שנתחיל?

כדי לנהל מערכי נתונים משורת הפקודה, צריך להשלים את Simulation Codelab עם Docker ולבדוק את חומר העזר של פקודות ב-CLI.

כניסה ל-Simulation Codelab

הסבר על פקודות ב-CLI

לרשימה של פקודות dataset, מקלידים help:

dataset help
help
active
activetimestamp
channel
channelmask
clear
commit
delay
extpanid
init
meshlocalprefix
mgmtgetcommand
mgmtsetcommand
networkkey
networkname
panid
pending
pendingtimestamp
pskc
securitypolicy
Done

מיפויי ארגומנטים

מדיניות האבטחה

פקודות מדיניות האבטחה משתמשות במיפויי ארגומנטים כדי לקבל ולהגדיר otSecurityPolicy חברים. לדוגמה, dataset active:

dataset active
Active Timestamp: 1
Channel: 13
Channel Mask: 0x07fff800
Ext PAN ID: d63e8e3e495ebbc3
Mesh Local Prefix: fd3d:b50b:f96d:722d::/64
Network Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done

בדוגמה הזו, Security Policy: 0 מציין את mRotationTime.

כאן מופיעה רשימה של כל הארגומנטים במדיניות האבטחה ב-CLI וגם איבר otSecurityPolicy התואם לכל ארגומנט:

גם בפקודות get ו-set של dataset securitypolicy נעשה שימוש באותו ארגומנט מיפויים, לדוגמה הגדרה של securitypolicy והעברת o, n, r, וגם c:

dataset securitypolicy 672 onrc
Done

רכיבים של מערך נתונים ופקודות mgmt

יחד עם פרמטרים אחרים, mgmtgetcommand ו-mgmtsetcommand למערכי נתונים 'פעילים' ו'בהמתנה', ניתן לקבל ולהגדיר כל שילוב של otOperationalDatasetComponents:

  • activetimestamp
  • pendingtimestamp
  • networkkey
  • networkname
  • extpanid
  • localprefix
  • delaytimer
  • panid
  • channel
  • securitypolicy

עבור mgmtgetcommand, אפשר לציין את הרכיבים האלה בכל סדר כדי לקבל את הערכים התואמים. אפשר גם להעביר את -x כדי להשתמש בקוד הקסדצימלי מחרוזת שמשמשת כייצוג של רצף בייטים של רכיבי TLV. השם יכול להיות הספק אמות מידה ספציפיות שאולי תרצו להוסיף בנוסף לפרמטרים אחרים.

mgmtgetcommand מאפשר גם לציין באופן אופציונלי את כתובת IPv6 של מנהיג. אחרת, נעשה שימוש ב-ALOC המוביל.

dataset mgmtgetcommand {active|pending} [address leader-address] [dataset-components] [-x tlv-list]

לדוגמה, כדי לקבל את activetimestamp ואת securitypolicy, צריך להשתמש בפקודה הבאה ארגומנטים:

dataset mgmtgetcommand active address fdde:ad00:beef:0:558:f56b:d688:799 activetimestamp securitypolicy
Done

כדי להגדיר רכיבים, אפשר גם לספק את רכיבי מערך הנתונים בכל סדר, ואחריו ערך הרכיב.

dataset mgmtgetcommand {active|pending} [dataset-components] [-x tlv-list]

כדי להגדיר את activetimestamp ואת securitypolicy, צריך להשתמש בהגדרות הבאות ארגומנטים:

dataset mgmtsetcommand active activetimestamp 123 securitypolicy 1 onrc
Done