IPv6

Dieses Modul enthält Funktionen, die die IPv6-Kommunikation steuern.

Zusammenfassung

Aufzählungen

anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum
IPv6-Quellen.
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum
ECN-Status im IP-Header
anonymous enum{
  OT_IP6_PROTO_HOP_OPTS = 0,
  OT_IP6_PROTO_TCP = 6,
  OT_IP6_PROTO_UDP = 17,
  OT_IP6_PROTO_IP6 = 41,
  OT_IP6_PROTO_ROUTING = 43,
  OT_IP6_PROTO_FRAGMENT = 44,
  OT_IP6_PROTO_ICMP6 = 58,
  OT_IP6_PROTO_NONE = 59,
  OT_IP6_PROTO_DST_OPTS = 60
}
enum
Internet Protocol-Nummern

Typdef.

otIp6Address Typdef
struct otIp6Address
Diese Struktur stellt eine IPv6-Adresse dar.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) Typdef
void(*
Dieser Funktionszeiger wird aufgerufen, wenn eine interne IPv6-Adresse hinzugefügt oder entfernt wird.
otIp6AddressComponents Typdef
Diese Struktur stellt die Komponenten einer IPv6-Adresse dar.
otIp6AddressInfo Typdef
otIp6InterfaceIdentifier Typdef
Diese Struktur stellt die Schnittstellenkennung einer IPv6-Adresse dar.
otIp6NetworkPrefix Typdef
Diese Struktur stellt das Netzwerkpräfix einer IPv6-Adresse dar (die wichtigsten 64 Bit der Adresse).
otIp6Prefix Typdef
struct otIp6Prefix
Diese Struktur entspricht einem IPv6-Präfix.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) Typdef
void(*
Dieser Funktionszeiger wird aufgerufen, wenn ein IPv6-Datagramm empfangen wird.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) Typdef
void(*
Dieser Funktionszeiger wird mit Ergebnissen von otIp6RegisterMulticastListeners aufgerufen.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) Typdef
bool(*
Mit diesem Funktionszeiger kann der Nutzer Präfixe filtern und das Hinzufügen einer SLAAC-Adresse auf der Grundlage eines Präfixes nicht zulassen.
otMessageInfo Typdef
struct otMessageInfo
Diese Struktur stellt die lokalen IPv6-Socket-Adressen dar.
otNetifAddress Typdef
Diese Struktur stellt eine IPv6-Netzwerkschnittstelle dar.
otNetifMulticastAddress Typdef
Diese Struktur stellt eine IPv6-Netzwerkschnittstelle mit Multicast-Adresse dar.
otSockAddr Typdef
struct otSockAddr
Diese Struktur stellt eine IPv6-Socket-Adresse dar.

Variablen

OT_TOOL_PACKED_END

Funktionen

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Fügen Sie der Thread-Schnittstelle eine Netzwerkschnittstelle hinzu.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Mit dieser Funktion wird ein Port der Liste der zulässigen nicht gesicherten Ports hinzugefügt.
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
Diese Funktion wandelt einen für Menschen lesbaren IPv6-Adressstring in eine Binärdarstellung um.
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Diese Funktion wandelt eine bestimmte IPv6-Adresse in einen für Menschen lesbaren String um.
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
Testen Sie, ob zwei IPv6-Präfixe identisch sind.
otIp6GetMulticastAddresses(otInstance *aInstance)
Liste der IPv6-Multicast-Adressen abrufen, die von der Thread-Schnittstelle abonniert wurden.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Rufen Sie die Liste der IPv6-Adressen auf, die der Thread-Schnittstelle zugewiesen sind.
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Diese Funktion gibt einen Zeiger auf die Liste unsicherer Ports zurück.
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Testen Sie, ob zwei IPv6-Adressen identisch sind.
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
Diese Funktion gibt an, ob eine bestimmte IPv6-Adresse die nicht angegebene Adresse ist.
otIp6IsEnabled(otInstance *aInstance)
bool
Diese Funktion gibt an, ob die IPv6-Schnittstelle aktiv ist.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Prüfen Sie, ob der promiskuitive Modus für Multicast auf der Thread-Schnittstelle aktiviert ist.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Diese Funktion gibt an, ob der Thread-Traffic herausgefiltert wird, wenn IPv6-Datagramme über den in otIp6SetReceiveCallback() angegebenen Callback bereitgestellt werden.
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Diese Funktion gibt an, ob das SLAAC-Modul aktiviert ist oder nicht.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Ordnen Sie einen neuen Nachrichtenpuffer zu, um eine IPv6-Nachricht zu senden.
otIp6NewMessageFromBuffer(otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
Ordnen Sie einen neuen Nachrichtenpuffer zu und schreiben Sie das IPv6-Datagramm in den Nachrichtenzwischenspeicher, um eine IPv6-Nachricht zu senden.
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Diese Funktion gibt die Präfixübereinstimmungslänge (Bits) für zwei IPv6-Adressen zurück.
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Diese Funktion wandelt ein angegebenes IPv6-Präfix in einen für Menschen lesbaren String um.
otIp6ProtoToString(uint8_t aIpProto)
const char *
Diese Funktion wandelt eine bestimmte IP-Protokollnummer in einen für Menschen lesbaren String um.
otIp6RegisterMulticastListeners(otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Diese Funktion registriert Multicast-Listener für den primären Backbone-Router.
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
Mit dieser Funktion werden alle Ports aus der Liste der zulässigen unsicheren Ports entfernt.
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Entfernen Sie eine Netzwerkschnittstelle aus der Thread-Schnittstelle.
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
Mit dieser Funktion wird ein Port aus der Liste der zulässigen unsicheren Ports entfernt.
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
Diese Funktion führt die Auswahl der OpenThread-Quelladresse durch.
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Diese Funktion sendet ein IPv6-Datagramm über die Thread-Schnittstelle.
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Diese Funktion registriert einen Callback, um interne IPv6-Adressen zu ändern.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Mit dieser Funktion wird die IPv6-Schnittstelle aufgerufen oder deaktiviert.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Mit dieser Funktion wird die lokale Mesh-ID des Mesh-Netzwerks festgelegt (für Testzwecke).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Promiskuitiven Modus im Multicast-Modus auf der Thread-Schnittstelle aktivieren.
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Diese Funktion registriert einen Callback, um empfangene IPv6-Datagramme bereitzustellen.
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
Mit dieser Funktion wird festgelegt, ob der Thread-Traffic herausgefiltert wird, wenn IPv6-Datagramme über den in otIp6SetReceiveCallback() angegebenen Callback bereitgestellt werden.
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Mit dieser Funktion wird das SLAAC-Modul aktiviert/deaktiviert.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Mit dieser Funktion wird der SLAAC-Modul-Handler festgelegt.
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Diese Funktion wandelt eine bestimmte IPv6-Socket-Adresse in einen für Menschen lesbaren String um.
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Threadschnittstelle über eine Netzwerk-Multicast-Adresse abonnieren.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Beenden Sie die Thread-Schnittstelle von einer Multicast-Adresse für Netzwerkschnittstellen.

Strebenklemmen

otIp6Address

Diese Struktur stellt eine IPv6-Adresse dar.

otIp6AddressComponents

Diese Struktur stellt die Komponenten einer IPv6-Adresse dar.

otIp6AddressInfo

Diese Struktur stellt IPv6-Adressinformationen dar.

otIp6InterfaceIdentifier

Diese Struktur stellt die Schnittstellenkennung einer IPv6-Adresse dar.

otIp6NetworkPrefix

Diese Struktur stellt das Netzwerkpräfix einer IPv6-Adresse dar (die wichtigsten 64 Bit der Adresse).

otIp6Prefix

Diese Struktur entspricht einem IPv6-Präfix.

otMessageInfo

Diese Struktur stellt die lokalen IPv6-Socket-Adressen dar.

otNetifAddress

Diese Struktur stellt eine IPv6-Netzwerkschnittstelle dar.

otNetifMulticastAddress

Diese Struktur stellt eine IPv6-Netzwerkschnittstelle mit Multicast-Adresse dar.

otSockAddr

Diese Struktur stellt eine IPv6-Socket-Adresse dar.

Gewerkschaften

otIp6InterfaceIdentifier::OT_TOOL_PACKED_FIELD

Aufzählungen

Anonyme Aufzählung

 anonymous enum

IPv6-Quellen.

Attribute
OT_ADDRESS_ORIGIN_DHCPV6

DHCPv6-zugewiesene Adresse.

OT_ADDRESS_ORIGIN_MANUAL

Manuell zugewiesene Adresse.

OT_ADDRESS_ORIGIN_SLAAC

Zugewiesene SLAAC-Adresse

OT_ADDRESS_ORIGIN_THREAD

Thread zugewiesen (ALOC, RLOC, MLEID usw.)

Anonyme Aufzählung

 anonymous enum

ECN-Status im IP-Header

Attribute
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

Staus festgestellt (CE)

OT_ECN_NOT_CAPABLE

Nicht-ECT.

Anonyme Aufzählung

 anonymous enum

Internet Protocol-Nummern

Attribute
OT_IP6_PROTO_DST_OPTS

Zieloptionen für IPv6

OT_IP6_PROTO_FRAGMENT

Fragment-Header für IPv6.

OT_IP6_PROTO_HOP_OPTS

IPv6-By-Hop-Option.

OT_IP6_PROTO_ICMP6

ICMP für IPv6.

OT_IP6_PROTO_IP6

IPv6-Kapselung

OT_IP6_PROTO_NONE

Kein nächster Header für IPv6.

OT_IP6_PROTO_ROUTING

Routing-Header für IPv6.

OT_IP6_PROTO_TCP

Transmission Control-Protokoll

OT_IP6_PROTO_UDP

Nutzer-Datagramm

Typdef.

otIp6Address

struct otIp6Address otIp6Address

Diese Struktur stellt eine IPv6-Adresse dar.

otIp6AddressCallback

void(* otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext)

Dieser Funktionszeiger wird aufgerufen, wenn eine interne IPv6-Adresse hinzugefügt oder entfernt wird.

Details
Parameter
[in] aAddressInfo
Ein Zeiger auf die IPv6-Adressinformationen.
[in] aIsAdded
WAHR, wenn aAddress hinzugefügt wurde, FALSCH, wenn aAddress entfernt wurde.
[in] aContext
Ein Hinweis auf den anwendungsspezifischen Kontext.

otIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Diese Struktur stellt die Komponenten einer IPv6-Adresse dar.

otIp6AddressInfo

struct otIp6AddressInfo otIp6AddressInfo

otIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Diese Struktur stellt die Schnittstellenkennung einer IPv6-Adresse dar.

otIp6NetworkPrefix

struct otIp6NetworkPrefix otIp6NetworkPrefix

Diese Struktur stellt das Netzwerkpräfix einer IPv6-Adresse dar (die wichtigsten 64 Bit der Adresse).

otIp6Präfix

struct otIp6Prefix otIp6Prefix

Diese Struktur entspricht einem IPv6-Präfix.

otIp6ReceiveCallback

void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext)

Dieser Funktionszeiger wird aufgerufen, wenn ein IPv6-Datagramm empfangen wird.

Details
Parameter
[in] aMessage
Ein Zeiger auf den Nachrichtenzwischenspeicher mit dem empfangenen IPv6-Datagramm. Diese Funktion überträgt die Eigentümerschaft an aMessage an den Empfänger des Callbacks. Die Nachricht sollte vom Empfänger des Callbacks freigegeben werden, nachdem die Nachricht verarbeitet wurde (siehe otMessageFree()).
[in] aContext
Ein Hinweis auf den anwendungsspezifischen Kontext.

otIp6RegisterMulticastListenersCallback

void(* otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum)

Dieser Funktionszeiger wird mit Ergebnissen von otIp6RegisterMulticastListeners aufgerufen.

Details
Parameter
[in] aContext
Ein Zeiger auf den Nutzerkontext.
[in] aError
OT_ERROR_NONE, wenn MLR.req erfolgreich gesendet wurde und MLR.rsp empfangen wurde, OT_ERROR_RESPONSE_TIMEOUT, wenn MLR.rsp nicht empfangen wurde, OT_ERROR_PARSE, wenn MLR.rsp nicht geparst werden konnte.
[in] aMlrStatus
Der Status der Multicast-Listener-Registrierung, wenn aError OT_ERROR_NONE ist.
[in] aFailedAddresses
Ein Verweis auf die fehlerhaften IPv6-Adressen, wenn aError OT_ERROR_NONE ist.
[in] aFailedAddressNum
Die Anzahl der fehlerhaften IPv6-Adressen, wenn aError OT_ERROR_NONE ist.
Weitere Informationen:
otIp6RegisterMulticastListeners

otIp6SlaacPrefixFilter

bool(* otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix)

Mit diesem Funktionszeiger kann der Nutzer Präfixe filtern und das Hinzufügen einer SLAAC-Adresse auf der Grundlage eines Präfixes nicht zulassen.

Mit otIp6SetSlaacPrefixFilter() kann der Filter-Handler festgelegt werden. Der Filter-Handler wird vom SLAAC-Modul aufgerufen, wenn eine SLAAC-Adresse anhand eines Präfixes hinzugefügt werden soll. Der boolesche Rückgabewert bestimmt, ob die Adresse gefiltert (nicht hinzugefügt) wird oder nicht.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aPrefix
Ein Zeiger, dem Präfix vorangestellt wird, für das SLAAC-Adressen hinzugefügt werden.
Rückgabewerte
TRUE
Gibt an, dass die auf dem Präfix basierende SLAAC-Adresse gefiltert und NICHT hinzugefügt werden sollte.
FALSE
Gibt an, dass die auf dem Präfix basierende SLAAC-Adresse hinzugefügt werden soll

OTMessageInfo

struct otMessageInfo otMessageInfo

Diese Struktur stellt die lokalen IPv6-Socket-Adressen dar.

OTNetifAddress

struct otNetifAddress otNetifAddress

Diese Struktur stellt eine IPv6-Netzwerkschnittstelle dar.

otNetifMulticastAddress:

struct otNetifMulticastAddress otNetifMulticastAddress

Diese Struktur stellt eine IPv6-Netzwerkschnittstelle mit Multicast-Adresse dar.

OTSockAddr

struct otSockAddr otSockAddr

Diese Struktur stellt eine IPv6-Socket-Adresse dar.

Variablen

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

Funktionen

otIp6AddUnicastAddress

otError otIp6AddUnicastAddress(
  otInstance *aInstance,
  const otNetifAddress *aAddress
)

Fügen Sie der Thread-Schnittstelle eine Netzwerkschnittstelle hinzu.

Die übergebene Instanz aAddress wird von der Thread-Schnittstelle kopiert. Die Thread-Schnittstelle unterstützt nur eine feste Anzahl von extern hinzugefügten Unicast-Adressen. Siehe OPENHOUR_CONFIG_IP6_MAX_EXT_UCAST_ADDRS.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aAddress
Ein Zeiger auf eine Netzwerkschnittstelle.
Rückgabewerte
OT_ERROR_NONE
Die Netzwerkschnittstelle wurde hinzugefügt oder aktualisiert.
OT_ERROR_INVALID_ARGS
Die von aAddress angegebene IP-Adresse ist eine interne Adresse.
OT_ERROR_NO_BUFS
In der Netzwerkschnittstelle werden bereits die maximal zulässigen externen Adressen gespeichert.

otIp6AddUnsecurePort

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Mit dieser Funktion wird ein Port der Liste der zulässigen nicht gesicherten Ports hinzugefügt.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aPort
Der Portwert.
Rückgabewerte
OT_ERROR_NONE
Der Port wurde der Liste unsicherer Ports hinzugefügt.
OT_ERROR_INVALID_ARGS
Der Port ist ungültig. Wert 0 ist für die interne Verwendung reserviert.
OT_ERROR_NO_BUFS
Die Liste der unsicheren Ports ist voll.

otIp6AddressFromString

otError otIp6AddressFromString(
  const char *aString,
  otIp6Address *aAddress
)

Diese Funktion wandelt einen für Menschen lesbaren IPv6-Adressstring in eine Binärdarstellung um.

Details
Parameter
[in] aString
Ein Zeiger auf einen mit NULL beendeten String.
[out] aAddress
Ein Zeiger auf eine IPv6-Adresse.
Rückgabewerte
OT_ERROR_NONE
String wurde geparst.
OT_ERROR_INVALID_ARGS
String konnte nicht geparst werden.

otIp6AddressToString

void otIp6AddressToString(
  const otIp6Address *aAddress,
  char *aBuffer,
  uint16_t aSize
)

Diese Funktion wandelt eine bestimmte IPv6-Adresse in einen für Menschen lesbaren String um.

Der IPv6-Adressstring ist als 16 Hexadezimalwerte formatiert, die durch ':' (d.h. "%x:%x:%x:...:%x").

Wenn der resultierende String nicht in aBuffer passt (innerhalb seiner aSize-Zeichen), wird er abgeschnitten, aber der ausgegebene String wird immer null beendet.

Details
Parameter
[in] aAddress
Ein Zeiger auf eine IPv6-Adresse (MUSS NICHT NULL sein).
[out] aBuffer
Ein Zeiger auf ein Zeichen-Array, um die Zeichenfolge auszugeben. Darf NICHT NULL sein.
[in] aSize
Die Größe von aBuffer (in Byte). Empfohlen, OT_IP6_ADDRESS_STRING_SIZE zu verwenden.

otIp6ArePrefixesEqual

bool otIp6ArePrefixesEqual(
  const otIp6Prefix *aFirst,
  const otIp6Prefix *aSecond
)

Testen Sie, ob zwei IPv6-Präfixe identisch sind.

Details
Parameter
[in] aFirst
Ein Zeiger auf das erste IPv6-Präfix.
[in] aSecond
Ein Zeiger auf das zweite IPv6-Präfix, das verglichen werden soll.
Rückgabewerte
TRUE
Die beiden IPv6-Präfixe sind identisch.
FALSE
Die beiden IPv6-Präfixe sind nicht identisch.

otIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Liste der IPv6-Multicast-Adressen abrufen, die von der Thread-Schnittstelle abonniert wurden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Ein Zeiger auf die erste Multicast-Adresse für Netzwerkschnittstelle.

otIp6GetUnicastAddresses

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Rufen Sie die Liste der IPv6-Adressen auf, die der Thread-Schnittstelle zugewiesen sind.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Ein Zeiger auf die erste Netzwerkschnittstelle.

otIp6GetUnsecurePorts

const uint16_t * otIp6GetUnsecurePorts(
  otInstance *aInstance,
  uint8_t *aNumEntries
)

Diese Funktion gibt einen Zeiger auf die Liste unsicherer Ports zurück.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aNumEntries
Die Anzahl der Einträge in der Liste
Rückgabe
Ein Zeiger auf die Liste unsicherer Ports.

otIp6IsAddressEqual

bool otIp6IsAddressEqual(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Testen Sie, ob zwei IPv6-Adressen identisch sind.

Details
Parameter
[in] aFirst
Ein Zeiger auf die erste IPv6-Adresse, die verglichen werden soll.
[in] aSecond
Ein Zeiger auf die zweite IPv6-Adresse, die verglichen werden soll.
Rückgabewerte
TRUE
Die beiden IPv6-Adressen sind identisch.
FALSE
Die beiden IPv6-Adressen sind nicht identisch.

otIp6IsAddressOhne Angabe

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Diese Funktion gibt an, ob eine bestimmte IPv6-Adresse die nicht angegebene Adresse ist.

Details
Parameter
[in] aAddress
Ein Zeiger auf eine IPv6-Adresse.
Rückgabewerte
TRUE
Wenn die IPv6-Adresse die nicht angegebene Adresse ist.
FALSE
Wenn die IPv6-Adresse nicht bekannt ist.

otIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Diese Funktion gibt an, ob die IPv6-Schnittstelle aktiv ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
TRUE
Die IPv6-Schnittstelle ist aktiviert.
FALSE
Die IPv6-Schnittstelle ist deaktiviert.

otIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Prüfen Sie, ob der promiskuitive Modus für Multicast auf der Thread-Schnittstelle aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Weitere Informationen:
otIp6SetMulticastPromiscuousEnabled

otIp6IsReceiveFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Diese Funktion gibt an, ob der Thread-Traffic herausgefiltert wird, wenn IPv6-Datagramme über den in otIp6SetReceiveCallback() angegebenen Callback bereitgestellt werden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
WAHR, wenn Thread-Traffic herausgefiltert wird, sonst FALSCH.
Siehe auch:
otIp6SetReceiveCallback
otIp6SetReceiveFilterEnabled

otIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Diese Funktion gibt an, ob das SLAAC-Modul aktiviert ist oder nicht.

Für diese Funktion muss die Build-Funktion OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE aktiviert sein.

Details
Rückgabewerte
TRUE
SLAAC-Modul ist aktiviert.
FALSE
Das SLAAC-Modul ist deaktiviert.

otIp6NewMessage

otMessage * otIp6NewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

Ordnen Sie einen neuen Nachrichtenpuffer zu, um eine IPv6-Nachricht zu senden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSettings
Ein Zeiger auf die Nachrichteneinstellungen oder NULL, um die Standardeinstellungen festzulegen.
Rückgabe
Ein Zeiger auf den Nachrichtenzwischenspeicher oder NULL, wenn keine Nachrichtenzwischenspeicher verfügbar sind oder Parameter ungültig sind.
Weitere Informationen:
otMessageFree

otIp6NewMessageFromBuffer

otMessage * otIp6NewMessageFromBuffer(
  otInstance *aInstance,
  const uint8_t *aData,
  uint16_t aDataLength,
  const otMessageSettings *aSettings
)

Ordnen Sie einen neuen Nachrichtenpuffer zu und schreiben Sie das IPv6-Datagramm in den Nachrichtenzwischenspeicher, um eine IPv6-Nachricht zu senden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aData
Ein Zeiger auf den IPv6-Datagramm-Zwischenspeicher.
[in] aDataLength
Die Größe des IPv6-Datagramm-Zwischenspeichers, auf den aData verweist.
[in] aSettings
Ein Zeiger auf die Nachrichteneinstellungen oder NULL, um die Standardeinstellungen festzulegen.
Rückgabe
Ein Zeiger auf die Nachricht oder NULL, wenn ein fehlerhafter IPv6-Header oder nicht ausreichende Nachrichtenzwischenspeicher vorhanden sind.
Weitere Informationen:
otMessageFree

otIp6PrefixMatch

uint8_t otIp6PrefixMatch(
  const otIp6Address *aFirst,
  const otIp6Address *aSecond
)

Diese Funktion gibt die Präfixübereinstimmungslänge (Bits) für zwei IPv6-Adressen zurück.

Details
Parameter
[in] aFirst
Ein Zeiger auf die erste IPv6-Adresse.
[in] aSecond
Ein Zeiger auf die zweite IPv6-Adresse.
Rückgabe
Die Präfixlänge in Bit.

otIp6PrefixToString

void otIp6PrefixToString(
  const otIp6Prefix *aPrefix,
  char *aBuffer,
  uint16_t aSize
)

Diese Funktion wandelt ein angegebenes IPv6-Präfix in einen für Menschen lesbaren String um.

Der IPv6-Adressenstring hat folgendes Format: "%x:%x:%x:...[::]/plen"

Wenn der resultierende String nicht in aBuffer passt (innerhalb seiner aSize-Zeichen), wird er abgeschnitten, aber der ausgegebene String wird immer null beendet.

Details
Parameter
[in] aPrefix
Ein Zeiger auf ein IPv6-Präfix (MUSS NICHT NULL sein).
[out] aBuffer
Ein Zeiger auf ein Zeichen-Array, um die Zeichenfolge auszugeben. Darf NICHT NULL sein.
[in] aSize
Die Größe von aBuffer (in Byte). Empfohlen, OT_IP6_PREFIX_STRING_SIZE zu verwenden.

otIp6ProtoToString

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Diese Funktion wandelt eine bestimmte IP-Protokollnummer in einen für Menschen lesbaren String um.

Details
Parameter
[in] aIpProto
Eine IP-Protokollnummer (OT_IP6_PROTO_*-Aufzählung).
Rückgabe
Ein String, der aIpProto darstellt.

otIp6RegisterMulticastListener

otError otIp6RegisterMulticastListeners(
  otInstance *aInstance,
  const otIp6Address *aAddresses,
  uint8_t aAddressNum,
  const uint32_t *aTimeout,
  otIp6RegisterMulticastListenersCallback aCallback,
  void *aContext
)

Diese Funktion registriert Multicast-Listener für den primären Backbone-Router.

Hinweis: Nur verfügbar, wenn sowohl OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE als auch OPENTHREAD_CONFIG_COMMISSIONER_ENABLE aktiviert sind.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aAddresses
Ein zu streamendes Multicast-Adressenarray.
[in] aAddressNum
Die Anzahl der zu registrierenden Multicast-Adresse (0, wenn aAddresses NULL ist).
[in] aTimeout
Ein Zeiger auf das Zeitlimit (in Sekunden), das in „MLR.req“ enthalten sein soll. Beim Zeitlimit von 0 wird der entsprechende Multicast-Listener entfernt. Wenn NULL ist, hätte MLR.req standardmäßig kein Zeitlimit für TSV.
[in] aCallback
Ein Zeiger auf die Callback-Funktion.
[in] aContext
Ein Zeiger auf den Nutzerkontext.
Rückgabewerte
OT_ERROR_NONE
MLR.req wurde gesendet. aCallback wird aufgerufen, wenn diese Methode OT_ERROR_NONE zurückgibt.
OT_ERROR_BUSY
Wenn eine vorherige Registrierung durchgeführt wurde.
OT_ERROR_INVALID_ARGS
Wenn ein oder mehrere Argumente ungültig sind.
OT_ERROR_INVALID_STATE
Wenn sich das Gerät nicht in einem gültigen Zustand zum Senden von MLR.req befindet, z.B. „Provision“ wurde nicht gestartet, primärer Backbone-Router nicht gefunden.
OT_ERROR_NO_BUFS
Wenn nicht genügend Zwischenspeicher verfügbar sind.
Weitere Informationen:
otIp6RegisterMulticastListenersCallback

otIp6RemoveAllUnsecurePorts

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Mit dieser Funktion werden alle Ports aus der Liste der zulässigen unsicheren Ports entfernt.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.

otIp6RemoveUnicastAddress

otError otIp6RemoveUnicastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Entfernen Sie eine Netzwerkschnittstelle aus der Thread-Schnittstelle.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aAddress
Ein Zeiger auf eine IP-Adresse.
Rückgabewerte
OT_ERROR_NONE
Die Netzwerkschnittstelle wurde entfernt.
OT_ERROR_INVALID_ARGS
Die von aAddress angegebene IP-Adresse ist eine interne Adresse.
OT_ERROR_NOT_FOUND
Die von aAddress angegebene IP-Adresse wurde nicht gefunden.

otIp6RemoveUnsecurePort

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Mit dieser Funktion wird ein Port aus der Liste der zulässigen unsicheren Ports entfernt.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aPort
Der Portwert.
Rückgabewerte
OT_ERROR_NONE
Der Port wurde aus der Liste der zulässigen unsicheren Ports entfernt.
OT_ERROR_INVALID_ARGS
Der Port ist ungültig. Wert 0 ist für die interne Verwendung reserviert.
OT_ERROR_NOT_FOUND
Der Port wurde in der Liste der unsicheren Ports nicht gefunden.

otIp6SelectSourceAddress

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Diese Funktion führt die Auswahl der OpenThread-Quelladresse durch.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in,out] aMessageInfo
Ein Zeiger auf die Nachrichteninformationen.
Rückgabewerte
OT_ERROR_NONE
Eine Quelladresse wurde gefunden und enthält einen mSockAddr von aMessageInfo.
OT_ERROR_NOT_FOUND
Es wurde keine Quelladresse gefunden und aMessageInfo ist unverändert.

OTIp6Senden

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Diese Funktion sendet ein IPv6-Datagramm über die Thread-Schnittstelle.

Der Anrufer überträgt bei diesem Anruf die Eigentümerschaft an aMessage. OpenThread gibt aMessage kostenlos, wenn die Verarbeitung abgeschlossen ist, einschließlich der Rückgabe eines anderen Werts als OT_ERROR_NONE.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Ein Zeiger auf den Nachrichtenzwischenspeicher mit dem IPv6-Datagramm.
Rückgabewerte
OT_ERROR_NONE
Die Nachricht wurde verarbeitet.
OT_ERROR_DROP
Die Nachricht wurde korrekt formatiert, aber aufgrund von Paketverarbeitungsregeln nicht vollständig verarbeitet.
OT_ERROR_NO_BUFS
Erforderliche Nachrichtenzwischenspeicher konnten nicht verarbeitet werden, wenn das Datagramm verarbeitet wurde.
OT_ERROR_NO_ROUTE
Keine Route zum Hosten.
OT_ERROR_INVALID_SOURCE_ADDRESS
Die Quelladresse ist ungültig, z.B. eine Anycast-Adresse oder eine Multicast-Adresse.
OT_ERROR_PARSE
Beim Verarbeiten der Nachricht ist ein fehlerhafter Header aufgetreten.

otIp6SetAddressCallback

void otIp6SetAddressCallback(
  otInstance *aInstance,
  otIp6AddressCallback aCallback,
  void *aCallbackContext
)

Diese Funktion registriert einen Callback, um interne IPv6-Adressen zu ändern.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aCallback
Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn eine interne IPv6-Adresse hinzugefügt oder entfernt wird. NULL, um den Callback zu deaktivieren.
[in] aCallbackContext
Ein Hinweis auf den anwendungsspezifischen Kontext.

otIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Mit dieser Funktion wird die IPv6-Schnittstelle aufgerufen oder deaktiviert.

Rufen Sie diese Funktion auf, um die IPv6-Kommunikation zu aktivieren oder zu deaktivieren.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
TRUE, um IPv6 zu aktivieren, andernfalls FALSE.
Rückgabewerte
OT_ERROR_NONE
Die IPv6-Schnittstelle wurde nach oben und unten verschoben.
OT_ERROR_INVALID_STATE
Die IPv6-Schnittstelle ist nicht verfügbar, weil auf dem Gerät der Rohlink-Modus verwendet wird (gilt nur, wenn die OPENTHREAD_CONFIG_LINK_RAW_ENABLE-Funktion aktiviert ist).

otIp6SetMeshLocalIid

otError otIp6SetMeshLocalIid(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

Mit dieser Funktion wird die lokale Mesh-ID des Mesh-Netzwerks festgelegt (für Testzwecke).

Nur verfügbar, wenn OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aIid
Ein Zeiger auf die lokale Mesh-ID.
Rückgabewerte
OT_ERROR_NONE
Lokale Mesh-ID für Mesh-Netzwerk wurde erfolgreich festgelegt.
OT_ERROR_INVALID_STATE
Thread-Protokolle sind aktiviert.

otIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Promiskuitiven Modus im Multicast-Modus auf der Thread-Schnittstelle aktivieren.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
WAHR, um den Procast-Modus für Multicast zu aktivieren, sonst FALSCH
Weitere Informationen:
otIp6IsMulticastPromiscuousEnabled

otIp6SetReceiveCallback

void otIp6SetReceiveCallback(
  otInstance *aInstance,
  otIp6ReceiveCallback aCallback,
  void *aCallbackContext
)

Diese Funktion registriert einen Callback, um empfangene IPv6-Datagramme bereitzustellen.

Standardmäßig übergibt dieser Callback den Thread-Traffic nicht. Wie Sie die Traffic-Filtereinstellung für Thread-Steuerung ändern, erfahren Sie unter otIp6SetReceiveFilterEnabled().

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aCallback
Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn ein IPv6-Datagramm empfangen wird, oder NULL, um den Callback zu deaktivieren.
[in] aCallbackContext
Ein Hinweis auf den anwendungsspezifischen Kontext.
Weitere Informationen:
otIp6IsReceiveFilterEnabled
otIp6SetReceiveFilterEnabled

otIp6SetReceiveFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Mit dieser Funktion wird festgelegt, ob der Thread-Traffic herausgefiltert wird, wenn IPv6-Datagramme über den in otIp6SetReceiveCallback() angegebenen Callback bereitgestellt werden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
WAHR, wenn Thread-Traffic herausgefiltert wird, sonst FALSCH.
Siehe auch:
otIp6SetReceiveCallback
otIsReceiveIp6FilterEnabled

otIp6SetSlaacEnabled

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Mit dieser Funktion wird das SLAAC-Modul aktiviert/deaktiviert.

Für diese Funktion muss die Build-Funktion OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE aktiviert sein.

Wenn das SLAAC-Modul aktiviert ist, werden SLAAC-Adressen (basierend auf Mesh-Präfixen in Netzwerkdaten) der Schnittstelle hinzugefügt. Wenn das SLAAC-Modul deaktiviert ist, werden alle zuvor hinzugefügten SLAAC-Adressen entfernt.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
TRUE, um zu aktivieren, FALSE, um zu deaktivieren.

otIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Mit dieser Funktion wird der SLAAC-Modul-Handler festgelegt.

Für diese Funktion muss die Build-Funktion OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE aktiviert sein.

Der Filter-Handler wird vom SLAAC-Modul aufgerufen, wenn eine VAST-Adresse auf der Grundlage eines Präfixes hinzugefügt werden soll, um zu entscheiden, ob die Adresse hinzugefügt werden soll oder nicht.

Ein NULL-Filter-Handler deaktiviert die Filterung und ermöglicht das Hinzufügen aller SLAAC-Adressen.

Wenn diese Funktion nicht aufgerufen wird, ist der vom SLAAC-Modul verwendete Standardfilter NULL (Filter ist deaktiviert).

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aFilter
Ein Zeiger auf den SLAAC-Präfix-Filter-Handler oder NULL, um die Filterung zu deaktivieren.

otIp6SockAddrToString

void otIp6SockAddrToString(
  const otSockAddr *aSockAddr,
  char *aBuffer,
  uint16_t aSize
)

Diese Funktion wandelt eine bestimmte IPv6-Socket-Adresse in einen für Menschen lesbaren String um.

Der IPv6-Socket-Adressstring hat das Format „"[

]:" wobei `
wird als 16 Hexadezimalwerte angezeigt, getrennt durch ':' ist die Portnummer im Dezimalformat (d.h. "[%x:%x:...:%x]:%u")

Wenn der resultierende String nicht in aBuffer passt (innerhalb seiner aSize-Zeichen), wird er abgeschnitten, aber der ausgegebene String wird immer null beendet.

Details
Parameter
[in] aSockAddr
Ein Zeiger auf eine IPv6-Socket-Adresse (muss NICHT NULL sein).
[out] aBuffer
Ein Zeiger auf ein Zeichen-Array, um die Zeichenfolge auszugeben. Darf NICHT NULL sein.
[in] aSize
Die Größe von aBuffer (in Byte). Empfohlen, OT_IP6_SOCK_ADDR_STRING_SIZE zu verwenden.

otIp6AbonnierenMulticastAddress

otError otIp6SubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Threadschnittstelle über eine Netzwerk-Multicast-Adresse abonnieren.

Die übergebene Instanz aAddress wird von der Thread-Schnittstelle kopiert. Die Thread-Schnittstelle unterstützt nur eine feste Anzahl von extern hinzugefügten Multicast-Adressen. Siehe OPENHOUR_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aAddress
Ein Zeiger auf eine IP-Adresse.
Rückgabewerte
OT_ERROR_NONE
Die Multicast-Adresse für Netzwerkschnittstelle wurde abonniert.
OT_ERROR_ALREADY
Die Multicast-Adresse wurde bereits abonniert.
OT_ERROR_INVALID_ARGS
Die von aAddress angegebene IP-Adresse ist eine ungültige Multicast-Adresse.
OT_ERROR_REJECTED
Die von aAddress angegebene IP-Adresse ist eine interne Multicast-Adresse.
OT_ERROR_NO_BUFS
Die Netzwerkschnittstelle speichert bereits die maximal zulässige externe Multicast-Adresse.

otIp6unsubscribeMulticastAddress

otError otIp6UnsubscribeMulticastAddress(
  otInstance *aInstance,
  const otIp6Address *aAddress
)

Beenden Sie die Thread-Schnittstelle von einer Multicast-Adresse für Netzwerkschnittstellen.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aAddress
Ein Zeiger auf eine IP-Adresse.
Rückgabewerte
OT_ERROR_NONE
Abo für Multicast-Adresse für Netzwerkschnittstelle wurde beendet.
OT_ERROR_REJECTED
Die von aAddress angegebene IP-Adresse ist eine interne Adresse.
OT_ERROR_NOT_FOUND
Die von aAddress angegebene IP-Adresse wurde nicht gefunden.

Makros

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

Größe einer IPv6-Adresse (Byte)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

Empfohlene Größe für die Stringdarstellung einer IPv6-Adresse.

OT_IP6_IID_SIZE

 OT_IP6_IID_SIZE 8

Größe einer IPv6-Schnittstellenkennung (Byte)

OT_IP6_MAX_MLR_ADDRESSES

 OT_IP6_MAX_MLR_ADDRESSES 15

Maximale Anzahl von IPv6-Adressen, die von der Multicast-Listener-Registrierung unterstützt werden.

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

Größe eines IPv6-Präfixes (Bits)

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

Größe eines IPv6-Präfixes (Byte)

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Empfohlene Größe für die Stringdarstellung eines IPv6-Präfixes.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Empfohlene Größe für die Stringdarstellung einer IPv6-Socket-Adresse

Ressourcen

Die Themen der Referenzthread API basieren auf dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen sowie die Möglichkeit, in unserer Dokumentation mitzuwirken, finden Sie unter Ressourcen.