פרמטרים של הגדרת רשת של פרוטוקול 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.
לרשימה של פקודות 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
התואם לכל ארגומנט:
o
: mObtainNetworkKeyEnabledn
: mNativeCommissioningEnabledr
: mRoutersEnabledc
: mExternalCommissioningEnabledb
: mBeaconsEnabledC
: mCommercialCommissioningEnablede
: mAutonomousEnrollmentEnabledp
: mNetworkKeyProvisioningEnabledR
: mNonCcmRoutersEnabled
גם בפקודות 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