NAT64
המודול הזה כולל פונקציות ומבנים לפונקציה NAT64 בנתב הגבולות.
סיכום
הפונקציות האלה זמינות רק כשהתכונה OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
מופעלת.
מספור |
|
---|---|
otNat64DropReason{
|
טיפוסים בני מנייה (enum) סיבות לשחרור חבילות. |
otNat64State{
|
טיפוסים בני מנייה (enum) מדינות של NAT64. |
סוג שגיאות |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
מייצג כתובת IPv4. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
מייצג רשומת מיפוי של כתובות עבור NAT64. |
otNat64AddressMappingIterator
|
typedef משמש לאיטרציה באמצעות מיפויי כתובות של NAT64. |
otNat64Counters
|
typedefstruct otNat64Counters
מייצג את המונים עבור NAT64. |
otNat64DropReason
|
typedefenum otNat64DropReason
סיבות לשחרור חבילות. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
מייצג את המונים של חבילות שהוחמצו עקב שגיאות בזמן טיפול בחבילות NAT64. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
מייצג את המונים עבור הפרוטוקולים הנתמכים על ידי NAT64. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
המצביע נקרא כשמתבצעת בדיקת כמות של IPv4 (מתורגם על ידי מתרגם NAT64). |
משתנים |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
פונקציות |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
ממירה מחרוזת כתובת IPv4 שניתנת לקריאה על ידי אנשים לייצוג בינארי.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
ממירה את הכתובת למחרוזת.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
ממירה מחרוזת IPv4 מסוג CIDR שניתנת לקריאה על ידי אנשים לייצוג בינארי.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
ממירה את ה-IPv4 CIDR למחרוזת.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
הגדרת
aIp4Address על ידי ביצוע תרגום של כתובת NAT64 מ-aIp6Address כפי שצוין ב-RFC 6052. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
בודקים אם שתי כתובות IPv4 זהות.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
הקצאה של מאגר הודעות חדש לשליחת הודעת IPv4 למתרגם NAT64.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
מקבל את ה-CID4 של ה-IPR מוגדר במתרגם NAT64.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
מקבלת מונים של מתרגמים ב-NAT64.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
קבלת מונים של שגיאות תרגום ב-NAT64.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
מקבל את המידע הבא בנושא מיפוי מיפוי (באמצעות איטרציה).
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
מתקבל המצב של מנהל קידומת NAT64.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
המכשיר במצב תרגום של NAT64.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
מפעיל את
otNat64AddressMappingIterator . |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
מתורגמת למאגר נתונים של IPv4 למאגר נתונים של IPv6 ושולחת דרך ממשק השרשור.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnable)
|
void
הפעלה או השבתה של פונקציות NAT64.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
הגדרת ה-CIDR ששימש להגדרת כתובת המקור של חבילות ה-IPv4 היוצאות המתורגמות.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
רושם קריאה חוזרת (callback) כדי לספק דגימות נתונים של IPv4 שהתקבלו.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
מגדיר את כתובת ה-IPv6 על ידי ביצוע תרגום של כתובת NAT64 מהקידומת המועדפת של NAT64, וכתובת ה-IPv4 שצוינה כפי שצוין ב-RFC 6052.
|
מבנים |
|
---|---|
otIp4Address |
מייצג כתובת IPv4. |
otIp4Cidr |
מייצג בלוק IPv4 CIDR. |
otNat64AddressMapsping |
מייצג רשומת מיפוי של כתובות עבור NAT64. |
otNat64AddressMapspingIterator |
משמש לאיטרציה באמצעות מיפויי כתובות של NAT64. |
otNat64Counter |
מייצג את המונים עבור NAT64. |
otNat64ErrorCounters |
מייצג את המונים של חבילות שהוחמצו עקב שגיאות בזמן טיפול בחבילות NAT64. |
otNat64ProtocolCounters |
מייצג את המונים עבור הפרוטוקולים הנתמכים על ידי NAT64. |
איגודים |
|
---|---|
otIp4Address:: |
מספור
otNat64DropREASON
otNat64DropReason
סיבות לשחרור חבילות.
מאפיינים | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
הייתה ירידה בחבילה בגלל שהניתוח של ה-Datagram נכשל. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
שחרור החבילות לא נמצא כי לא נמצאו מיפויים או שמאגר המיפוי מוצה. |
OT_NAT64_DROP_REASON_UNKNOWN
|
שחרור חבילות מסיבות לא ידועות. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
ירידה בחבילה בגלל פרוטוקול IP לא נתמך. |
otNat64State
otNat64State
מדינות של NAT64.
מאפיינים | |
---|---|
OT_NAT64_STATE_ACTIVE
|
ה-BR מפרסם קידומת NAT64 ו/או מתרגם חבילות. |
OT_NAT64_STATE_DISABLED
|
NAT64 מושבת. |
OT_NAT64_STATE_IDLE
|
NAT64 מופעל, אבל ה-BR הזה אינו NAT64 BR פעיל. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64 מופעל, אבל יש תלות אחת או יותר ב-NAT64. |
סוג שגיאות
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64Addressמיפוי
struct otNat64AddressMapping otNat64AddressMapping
מייצג רשומת מיפוי של כתובות עבור NAT64.
otNat64AddressMapspingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
משמש לאיטרציה באמצעות מיפויי כתובות של NAT64.
השדות מהסוג הזה אטומים (לשימוש על ידי ליבה של OpenThreads בלבד), ולכן אין לגשת אליהם או להשתמש בהם.
לפני השימוש באיטרציה, צריך להפעיל אותו באמצעות otNat64AddressMappingIteratorInit()
.
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
מייצג את המונים של חבילות שהוחמצו עקב שגיאות בזמן טיפול בחבילות NAT64.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
מייצג את המונים עבור הפרוטוקולים הנתמכים על ידי NAT64.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
המצביע נקרא כשמתבצעת בדיקת כמות של IPv4 (מתורגם על ידי מתרגם NAT64).
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
משתנים
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
פונקציות
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
ממירה מחרוזת כתובת IPv4 שניתנת לקריאה על ידי אנשים לייצוג בינארי.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
ממירה את הכתובת למחרוזת.
פורמט המחרוזת כולל סימון של ארבע בייטים בכתובת (למשל, "127.0.0.1").
אם המחרוזת שתתקבל לא תתאים לערך aBuffer
(ב-aSize
התווים שלה), המחרוזת תיחתך, אבל המחרוזת שהפלטה תמיד תסתיים ב-null.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
ממירה מחרוזת IPv4 מסוג CIDR שניתנת לקריאה על ידי אנשים לייצוג בינארי.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
ממירה את ה-IPv4 CIDR למחרוזת.
פורמט המחרוזת מבוסס על סימון בארבע נקודות בכתובת של אורך עם קידומת (למשל: "127.0.0.1/32").
אם המחרוזת שתתקבל לא תתאים לערך aBuffer
(ב-aSize
התווים שלה), המחרוזת תיחתך, אבל המחרוזת שהפלטה תמיד תסתיים ב-null.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
otIp4חילוץמ-Ip6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
הגדרת aIp4Address
על ידי ביצוע תרגום של כתובת NAT64 מ-aIp6Address
כפי שצוין ב-RFC 6052.
ה-NAT64 aPrefixLength
חייב להיות אחד מהערכים הבאים: 32, 40, 48, 56, 64 או 96, אחרת ההתנהגות של השיטה הזו לא מוגדרת.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
בודקים אם שתי כתובות IPv4 זהות.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
הקצאה של מאגר הודעות חדש לשליחת הודעת IPv4 למתרגם NAT64.
במאגרי נתונים זמניים שהוקצו על ידי הפונקציה הזו יהיו 20 בייטים (הבדל בין גודל כותרות IPv6 לגדלים של כותרות IPv4).
זמין כש-OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
מופעל.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
החזרות |
מצביע למאגר הנתונים של ההודעות או NULL אם אין מאגרי נתונים זמינים או פרמטרים לא חוקיים.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
מקבל את ה-CID4 של ה-IPR מוגדר במתרגם NAT64.
זמין כש-OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
מופעל.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
מקבלת מונים של מתרגמים ב-NAT64.
המונה נספר מאז שהמכונה הופעלה.
זמין כש-OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
מופעל.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
קבלת מונים של שגיאות תרגום ב-NAT64.
המונים מאופסים כאשר המכונה של OpenThread מופעלת.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otNat64GetNextAddressמיפוי
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
מקבל את המידע הבא בנושא מיפוי מיפוי (באמצעות איטרציה).
זמין כש-OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
מופעל.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכי החזרה |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
מתקבל המצב של מנהל קידומת NAT64.
זמין כש-OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
מופעל.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||
ערכי החזרה |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
המכשיר במצב תרגום של NAT64.
זמין כש-OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
מופעל.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכי החזרה |
|
otNat64InitAddressMapspingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
מפעיל את otNat64AddressMappingIterator
.
יש להשתמש באיטרטור לפני השימוש.
אפשר לאתחל את האתחול כדי להתחיל מחדש מתחילת פרטי המיפוי.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
מתורגמת למאגר נתונים של IPv4 למאגר נתונים של IPv6 ושולחת דרך ממשק השרשור.
המתקשר מעביר את הבעלות על aMessage
בזמן השיחה הזו. השימוש ב-OpenThread יתפנה aMessage
בסיום העיבוד, כולל כשמוחזר ערך שאינו OT_ERROR_NONE
.
פרטים | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||
ערכי החזרה |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnable )
הפעלה או השבתה של פונקציות NAT64.
הערה: זה כולל את מתרגם NAT64 (כאשר OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
מופעל) ואת מנהל הקידומת NAT64 (כאשר OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
מופעל).
כאשר המדיניות OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
מופעלת, ההגדרה מושבתת כ-True מאפסת את טבלת המיפוי במתרגם.
זמין כש-OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
או OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
מופעלים.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
הגדרת ה-CIDR ששימש להגדרת כתובת המקור של חבילות ה-IPv4 היוצאות המתורגמות.
זמינה רק כאשר המדיניות OpenTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE מופעלת.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
ערכי החזרה |
|
otBorderRouterSend
otBorderRouterSetReceiveCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
רושם קריאה חוזרת (callback) כדי לספק דגימות נתונים של IPv4 שהתקבלו.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
מגדיר את כתובת ה-IPv6 על ידי ביצוע תרגום של כתובת NAT64 מהקידומת המועדפת של NAT64, וכתובת ה-IPv4 שצוינה כפי שצוין ב-RFC 6052.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
החזרות |
OT_ERROR_NONE סינכרה בהצלחה את כתובת ה-IPv6 מקידומת NAT64 ומכתובת IPv4.
|
||||||
החזרות |
OT_ERROR_INVALID_STATE אין קידומת NAT64 חוקית בנתוני הרשת.
|
פקודות מאקרו
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
גודל כתובת IPv4 (בייטים)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
אורך 000.000.000.000 בתוספת סיומת NUL.
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
אורך 000.000.000.000/00 בתוספת סיומת NUL.
משאבים
הנושאים של קובצי העזר של OpenThread API מגיעים מקוד המקור, והם זמינים ב-GitHub. למידע נוסף או כדי לתרום למסמכי התיעוד שלנו, יש לעיין בקטע משאבים.