Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

IPv6

Ten moduł zawiera funkcje sterujące komunikacją IPv6.

Podsumowanie

Wyliczenia

anonymous enum{
  OT_ADDRESS_ORIGIN_THREAD = 0,
  OT_ADDRESS_ORIGIN_SLAAC = 1,
  OT_ADDRESS_ORIGIN_DHCPV6 = 2,
  OT_ADDRESS_ORIGIN_MANUAL = 3
}
enum | typ wyliczeniowy
Źródła adresu IPv6.
anonymous enum{
  OT_ECN_NOT_CAPABLE = 0x0,
  OT_ECN_CAPABLE_0 = 0x2,
  OT_ECN_CAPABLE_1 = 0x1,
  OT_ECN_MARKED = 0x3
}
enum | typ wyliczeniowy
Stany ECN reprezentowane przez nagłówek IP.
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 | typ wyliczeniowy
Numery protokołów internetowych.

Typy

otBorderRoutingCounters typedef,
Ta struktura przedstawia liczniki pakietów przekazywanych przez routing graniczny.
otIp6Address typedef,
struct otIp6Address
Ta struktura reprezentuje adres IPv6.
otIp6AddressCallback)(const otIp6AddressInfo *aAddressInfo, bool aIsAdded, void *aContext) typedef,
void(*
Wskaźnik tej funkcji jest wywoływany po dodaniu lub usunięciu wewnętrznego adresu IPv6.
otIp6AddressComponents typedef,
Taka struktura reprezentuje komponenty adresu IPv6.
otIp6AddressInfo typedef,
otIp6InterfaceIdentifier typedef,
Ta struktura reprezentuje identyfikator interfejsu adresu IPv6.
otIp6NetworkPrefix typedef,
Ta struktura reprezentuje prefiks sieci IPv6 (większość 64-bitowych adresów).
otIp6Prefix typedef,
struct otIp6Prefix
Ta struktura reprezentuje prefiks IPv6.
otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) typedef,
void(*
Wskaźnik tej funkcji jest wywoływany po otrzymaniu grafiku IPv6.
otIp6RegisterMulticastListenersCallback)(void *aContext, otError aError, uint8_t aMlrStatus, const otIp6Address *aFailedAddresses, uint8_t aFailedAddressNum) typedef,
void(*
Ten wskaźnik funkcji jest wywoływany z wynikami otIp6RegisterMulticastListeners.
otIp6SlaacPrefixFilter)(otInstance *aInstance, const otIp6Prefix *aPrefix) typedef,
bool(*
Ten wskaźnik funkcji pozwala użytkownikowi filtrować prefiksy i nie zezwala na dodawanie adresu SLAAC na podstawie prefiksu.
otMessageInfo typedef,
struct otMessageInfo
Ta struktura reprezentuje lokalny i równorzędny adres IP IPv6.
otNetifAddress typedef,
Ta struktura reprezentuje adres jednostronowy interfejsu sieci IPv6.
otNetifMulticastAddress typedef,
Ta struktura reprezentuje adres multiemisji interfejsu IPv6.
otPacketsAndBytes typedef,
Ta struktura przedstawia liczniki pakietów i bajtów.
otSockAddr typedef,
struct otSockAddr
Ta struktura reprezentuje adres gniazda IPv6.

Zmienne

OT_TOOL_PACKED_END

Funkcje

otIp6AddUnicastAddress(otInstance *aInstance, const otNetifAddress *aAddress)
Dodaje do interfejsu Thread adres adresu sieci.
otIp6AddUnsecurePort(otInstance *aInstance, uint16_t aPort)
Ta funkcja dodaje port do listy dozwolonych niezabezpieczonych portów.
otIp6AddressFromString(const char *aString, otIp6Address *aAddress)
Ta funkcja konwertuje czytelny dla człowieka ciąg adresu IPv6 na reprezentację binarną.
otIp6AddressToString(const otIp6Address *aAddress, char *aBuffer, uint16_t aSize)
void
Ta funkcja konwertuje określony adres IPv6 na ciąg czytelny dla człowieka.
otIp6ArePrefixesEqual(const otIp6Prefix *aFirst, const otIp6Prefix *aSecond)
bool
Sprawdź, czy prefiksy IPv6 są takie same.
otIp6GetBorderRoutingCounters(otInstance *aInstance)
Pobiera liczniki wyznaczania granic.
otIp6GetMulticastAddresses(otInstance *aInstance)
Pobiera listę adresów multiemisji IPv6 subskrybowanych w interfejsie Thread.
otIp6GetPrefix(const otIp6Address *aAddress, uint8_t aLength, otIp6Prefix *aPrefix)
void
Ta metoda otrzymuje prefiks z aLength z aAddress.
otIp6GetUnicastAddresses(otInstance *aInstance)
const otNetifAddress *
Pobiera listę adresów IPv6 przypisanych do interfejsu Thread.
otIp6GetUnsecurePorts(otInstance *aInstance, uint8_t *aNumEntries)
const uint16_t *
Ta funkcja zwraca wskaźnik na listę niezabezpieczonych portów.
otIp6IsAddressEqual(const otIp6Address *aFirst, const otIp6Address *aSecond)
bool
Sprawdź, czy 2 adresy IPv6 są takie same.
otIp6IsAddressUnspecified(const otIp6Address *aAddress)
bool
Ta funkcja wskazuje, czy dany adres IPv6 jest nieokreślonym adresem.
otIp6IsEnabled(otInstance *aInstance)
bool
Wskazuje, czy interfejs IPv6 działa.
otIp6IsMulticastPromiscuousEnabled(otInstance *aInstance)
bool
Sprawdza, czy w trybie wątku włączony jest tryb multiemisji.
otIp6IsReceiveFilterEnabled(otInstance *aInstance)
bool
Ta funkcja wskazuje, czy ruch związany z kontrolą wątków jest odfiltrowywany przy dostarczaniu Gradientów IPv6 za pomocą wywołania zwrotnego określonego w funkcji otIp6SetOdbierzCall().
otIp6IsSlaacEnabled(otInstance *aInstance)
bool
Ta funkcja wskazuje, czy moduł SLAAC jest włączony.
otIp6NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Przydziel nowy bufor wiadomości do wysyłania wiadomości IPv6.
otIp6NewMessageFromBuffer(otInstance *aInstance, const uint8_t *aData, uint16_t aDataLength, const otMessageSettings *aSettings)
Przydziel nowy bufor wiadomości i zapisz dane w formacie IPv6 w buforze wiadomości, aby wysłać wiadomość IPv6.
otIp6PrefixMatch(const otIp6Address *aFirst, const otIp6Address *aSecond)
uint8_t
Ta funkcja zwraca długość dopasowania prefiksu (bity) dla 2 adresów IPv6.
otIp6PrefixToString(const otIp6Prefix *aPrefix, char *aBuffer, uint16_t aSize)
void
Ta funkcja konwertuje określony prefiks IPv6 na ciąg czytelny dla człowieka.
otIp6ProtoToString(uint8_t aIpProto)
const char *
Ta funkcja konwertuje określony numer protokołu IP na ciąg czytelny dla człowieka.
otIp6RegisterMulticastListeners(otInstance *aInstance, const otIp6Address *aAddresses, uint8_t aAddressNum, const uint32_t *aTimeout, otIp6RegisterMulticastListenersCallback aCallback, void *aContext)
Ta funkcja rejestruje detektory multicastu na głównym routerze szkieletowym.
otIp6RemoveAllUnsecurePorts(otInstance *aInstance)
void
Ta funkcja usuwa wszystkie porty z listy dozwolonych portów niezabezpieczonych.
otIp6RemoveUnicastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Usuwa adres interfejsu sieci z interfejsu Thread.
otIp6RemoveUnsecurePort(otInstance *aInstance, uint16_t aPort)
Ta funkcja usuwa port z listy dozwolonych zabezpieczonych portów.
otIp6ResetBorderRoutingCounters(otInstance *aInstance)
void
Resetuje liczniki routingu granicy.
otIp6SelectSourceAddress(otInstance *aInstance, otMessageInfo *aMessageInfo)
Ta funkcja przeprowadza wybór adresu źródłowego OpenThread.
otIp6Send(otInstance *aInstance, otMessage *aMessage)
Ta funkcja wysyła dane z użyciem protokołu IPv6 za pomocą interfejsu Thread.
otIp6SetAddressCallback(otInstance *aInstance, otIp6AddressCallback aCallback, void *aCallbackContext)
void
Ta funkcja rejestruje wywołanie zwrotne w celu powiadomienia o wewnętrznych zmianach adresu IPv6.
otIp6SetEnabled(otInstance *aInstance, bool aEnabled)
Przenosi interfejs IPv6 w górę lub w dół.
otIp6SetMeshLocalIid(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Ta funkcja ustawia lokalny identyfikator sieci typu mesh (do celów testowych).
otIp6SetMulticastPromiscuousEnabled(otInstance *aInstance, bool aEnabled)
void
Włącza lub wyłącza tryb widoczności multicast w interfejsie Thread.
otIp6SetReceiveCallback(otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext)
void
Ta funkcja rejestruje wywołanie zwrotne, które dostarcza Gradle danych IPv6.
otIp6SetReceiveFilterEnabled(otInstance *aInstance, bool aEnabled)
void
Ta funkcja określa, czy ruch związany z kontrolą w wątkach jest filtrowany podczas dostarczania gramatów IPv6 przez wywołanie zwrotne określone w funkcji otIp6SetReceivedCall()().
otIp6SetSlaacEnabled(otInstance *aInstance, bool aEnabled)
void
Ta funkcja włącza lub wyłącza moduł SLAAC.
otIp6SetSlaacPrefixFilter(otInstance *aInstance, otIp6SlaacPrefixFilter aFilter)
void
Ta funkcja ustawia moduł obsługi filtra SLAAC.
otIp6SockAddrToString(const otSockAddr *aSockAddr, char *aBuffer, uint16_t aSize)
void
Ta funkcja konwertuje określony adres gniazda IPv6 na ciąg zrozumiały dla człowieka.
otIp6SubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Subskrybuje interfejs Thread adresu adresu multiemisji interfejsu sieciowego.
otIp6UnsubscribeMulticastAddress(otInstance *aInstance, const otIp6Address *aAddress)
Anulowanie subskrypcji interfejsu Thread na adres multiemisji interfejsu sieciowego.

Dane strukturalne

Liczniki routingu OTBorder

Ta struktura przedstawia liczniki pakietów przekazywanych przez routing graniczny.

Adres IP 6

Ta struktura reprezentuje adres IPv6.

OTIp6AddressComponents

Taka struktura reprezentuje komponenty adresu IPv6.

otIp6AddressInfo

Ta struktura reprezentuje informacje adresowe IPv6.

otIp6InterfaceIdentifier

Ta struktura reprezentuje identyfikator interfejsu adresu IPv6.

OTIp6NetworkPrefix (Prefiks prefiksu sieci)

Ta struktura reprezentuje prefiks sieci IPv6 (większość 64-bitowych adresów).

PrefiksIp6

Ta struktura reprezentuje prefiks IPv6.

OTMessageInfo

Ta struktura reprezentuje lokalny i równorzędny adres IP IPv6.

OTNetifAddress

Ta struktura reprezentuje adres jednostronowy interfejsu sieci IPv6.

OTNetifMulticastAddress

Ta struktura reprezentuje adres multiemisji interfejsu IPv6.

OTPacketsAndBytes

Ta struktura przedstawia liczniki pakietów i bajtów.

OTSockAddr

Ta struktura reprezentuje adres gniazda IPv6.

Związki

otIp6InterfaceIdentifier:OT_TOOL_PACKED_FIELD

Wyliczenia

anonimowy enum

 anonymous enum

Źródła adresu IPv6.

Usługi
OT_ADDRESS_ORIGIN_DHCPV6

Przypisany adres DHCPv6.

OT_ADDRESS_ORIGIN_MANUAL

Adres przypisany ręcznie.

OT_ADDRESS_ORIGIN_SLAAC

Adres przypisany do gwarancji jakości usług (SLAAC).

OT_ADDRESS_ORIGIN_THREAD

Adres przypisany do wątku (ALOC, RLOC, MLEID itp.)

anonimowy enum

 anonymous enum

Stany ECN reprezentowane przez nagłówek IP.

Usługi
OT_ECN_CAPABLE_0

ECT(0)

OT_ECN_CAPABLE_1

ECT(1)

OT_ECN_MARKED

Wystąpił przeciążenie (CE)

OT_ECN_NOT_CAPABLE

Inne niż ECT.

anonimowy enum

 anonymous enum

Numery protokołów internetowych.

Usługi
OT_IP6_PROTO_DST_OPTS

Opcje miejsca docelowego dla IPv6.

OT_IP6_PROTO_FRAGMENT

Nagłówek fragmentu adresu IPv6.

OT_IP6_PROTO_HOP_OPTS

Opcja przeskoku IPv6.

OT_IP6_PROTO_ICMP6

ICMP dla IPv6.

OT_IP6_PROTO_IP6

Enklawa IPv6.

OT_IP6_PROTO_NONE

Brak następnego nagłówka IPv6.

OT_IP6_PROTO_ROUTING

Nagłówek routingu dla IPv6.

OT_IP6_PROTO_TCP

Protokół kontroli transmisji.

OT_IP6_PROTO_UDP

Dane użytkownika.

Typy

Liczniki routingu otBorder

struct otBorderRoutingCounters otBorderRoutingCounters

Ta struktura przedstawia liczniki pakietów przekazywanych przez routing graniczny.

Adres otIp6

struct otIp6Address otIp6Address

Ta struktura reprezentuje adres IPv6.

Wywołanie zwrotne otIp6

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

Wskaźnik tej funkcji jest wywoływany po dodaniu lub usunięciu wewnętrznego adresu IPv6.

Szczegóły
Parametry
[in] aAddressInfo
Wskaźnik do informacji o adresie IPv6.
[in] aIsAdded
PRAWDA, jeśli dodano element aAddress, wartość FAŁSZ, jeśli element aAddress został usunięty.
[in] aContext
Wskaźnik do kontekstu aplikacji.

OTIp6AddressComponents

struct otIp6AddressComponents otIp6AddressComponents

Taka struktura reprezentuje komponenty adresu IPv6.

Informacje adresowe

struct otIp6AddressInfo otIp6AddressInfo

OTIp6InterfaceIdentifier

struct otIp6InterfaceIdentifier otIp6InterfaceIdentifier

Ta struktura reprezentuje identyfikator interfejsu adresu IPv6.

Przedrostek sieci otIp6

struct otIp6NetworkPrefix otIp6NetworkPrefix

Ta struktura reprezentuje prefiks sieci IPv6 (większość 64-bitowych adresów).

Prefiks otIp6

struct otIp6Prefix otIp6Prefix

Ta struktura reprezentuje prefiks IPv6.

OTIp6Odbieranie połączeń zwrotnych

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

Wskaźnik tej funkcji jest wywoływany po otrzymaniu grafiku IPv6.

Szczegóły
Parametry
[in] aMessage
Wskaźnik do bufora wiadomości zawierający otrzymany dane IPv6. Ta funkcja przenosi własność elementu aMessage do odbiorcy wywołania zwrotnego. Wiadomość powinna zostać anulowana przez odbiorcę wywołania po przetworzeniu (patrz otMessageFree()).
[in] aContext
Wskaźnik do kontekstu aplikacji.

Połączenie OTIp6RegisterMulticastListenersCallback

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

Ten wskaźnik funkcji jest wywoływany z wynikami otIp6RegisterMulticastListeners.

Szczegóły
Parametry
[in] aContext
Wskaźnik do kontekstu użytkownika.
[in] aError
OT_ERROR_NONE, gdy udało się wysłać MLR.req i odebrał MLR.rsp, OT_ERROR_RESPONSE_TIMEOUT, gdy nie udało się odebrać MLR.rsp, OT_ERROR_PARSE, gdy nie udało się przeanalizować MLR.rsp.
[in] aMlrStatus
Stan rejestracji detektora Multicast, gdy aError to OT_ERROR_NONE.
[in] aFailedAddresses
Wskaźnik wskazujący nieudane adresy IPv6, gdy aError to OT_ERROR_NONE.
[in] aFailedAddressNum
Liczba nieudanych adresów IPv6, gdy aError to OT_ERROR_NONE.
Zobacz też:
otIp6RegisterMulticastListeners

OTIp6SlaacPrefixFilter

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

Ten wskaźnik funkcji pozwala użytkownikowi filtrować prefiksy i nie zezwala na dodawanie adresu SLAAC na podstawie prefiksu.

Aby określić moduł obsługi filtra, możesz użyć otIp6SetSlaacPrefixFilter(). Moduł obsługi filtra jest wywoływany przez moduł SLAAC, gdy ma on dodać adres SLAAC na podstawie prefiksu. Jej wartość logiczna określa, czy adres jest filtrowany (bez dodawania), czy nie.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aPrefix
Wskaźnik określający prefiks SLAAC, do którego zostanie dodany adres.
Wartości zwracane
TRUE
Wskazuje, że adres SLAAC oparty na prefiksie powinien być filtrowany i NIE należy go dodawać.
FALSE
Wskazuje, że adres SLAAC zgodny z prefiksem powinien zostać dodany.

Wiadomość

struct otMessageInfo otMessageInfo

Ta struktura reprezentuje lokalny i równorzędny adres IP IPv6.

Adres OTNetif

struct otNetifAddress otNetifAddress

Ta struktura reprezentuje adres jednostronowy interfejsu sieci IPv6.

Adres OTNetifMulticast

struct otNetifMulticastAddress otNetifMulticastAddress

Ta struktura reprezentuje adres multiemisji interfejsu IPv6.

Pakiet OTPacketsAndBytes

struct otPacketsAndBytes otPacketsAndBytes

Ta struktura przedstawia liczniki pakietów i bajtów.

OTSockAddr

struct otSockAddr otSockAddr

Ta struktura reprezentuje adres gniazda IPv6.

Zmienne

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otIp6InterfaceIdentifier OT_TOOL_PACKED_END

Funkcje

OTIp6AddUnicastAddress

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

Dodaje do interfejsu Thread adres adresu sieci.

Przekazywana instancja aAddress jest kopiowana przez interfejs Thread. Interfejs Thread obsługuje tylko stałą liczbę adresów zewnętrznych, które zostały dodane zewnętrznie. Zobacz OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aAddress
Wskaźnik adresu interfejsu sieci.
Wartości zwracane
OT_ERROR_NONE
Dodano (lub zaktualizowano) adres interfejsu sieci.
OT_ERROR_INVALID_ARGS
Adres IP wskazywany przez adres aAddress jest adresem wewnętrznym.
OT_ERROR_NO_BUFS
Interfejs sieci przechowuje już maksymalną dozwoloną liczbę adresów zewnętrznych.

Dodanie niezabezpieczonego portu OTIp6

otError otIp6AddUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Ta funkcja dodaje port do listy dozwolonych niezabezpieczonych portów.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aPort
Numer portu.
Wartości zwracane
OT_ERROR_NONE
Port został dodany do listy dozwolonych, niezabezpieczonych portów.
OT_ERROR_INVALID_ARGS
Port jest nieprawidłowy (wartość 0 jest zarezerwowana tylko do użytku wewnętrznego).
OT_ERROR_NO_BUFS
Lista niezabezpieczonych portów jest pełna.

OTIp6AddressFromString.

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

Ta funkcja konwertuje czytelny dla człowieka ciąg adresu IPv6 na reprezentację binarną.

Szczegóły
Parametry
[in] aString
Wskaźnik do ciągu tekstowego o wartości NULL.
[out] aAddress
Wskaźnik do adresu IPv6.
Wartości zwracane
OT_ERROR_NONE
Ciąg został przeanalizowany.
OT_ERROR_INVALID_ARGS
Nie udało się przeanalizować ciągu znaków.

OTIp6AddressToString,

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

Ta funkcja konwertuje określony adres IPv6 na ciąg czytelny dla człowieka.

Ciąg adresu IPv6 jest sformatowany jako 16 wartości szesnastkowych rozdzielonych znakiem „:” (np. „%x:%x:%x:...:%x”).

Jeśli powstały ciąg znaków nie zmieści się w polu aBuffer (znajduje się w zakresie aSize), ciąg zostanie skrócony, ale wyjściowy ciąg będzie miał wartość null.

Szczegóły
Parametry
[in] aAddress
Wskaźnik do adresu IPv6 (NIE może być wartością NULL).
[out] aBuffer
Wskaźnik wskazujący tablicę znaków, aby wyświetlić ciąg znaków (NIE może być wartością NULL).
[in] aSize
Rozmiar elementu aBuffer (w bajtach). Zalecane użycie: OT_IP6_ADDRESS_STRING_SIZE.

OTIp6ArePrefixesRówność

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

Sprawdź, czy prefiksy IPv6 są takie same.

Szczegóły
Parametry
[in] aFirst
Wskaźnik do pierwszego prefiksu IPv6 do porównania.
[in] aSecond
Wskaźnik do drugiego prefiksu IPv6, który chcesz porównać.
Wartości zwracane
TRUE
Dwa prefiksy IPv6 są takie same.
FALSE
Dwa prefiksy IPv6 nie są takie same.

Liczniki routingu otIp6GetBorderRouting

const otBorderRoutingCounters * otIp6GetBorderRoutingCounters(
  otInstance *aInstance
)

Pobiera liczniki wyznaczania granic.

Ta funkcja wymaga włączenia funkcji czasu kompilacji OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Zwroty
Wskaźnik do liczników routingu granicznego.

OTIp6GetMulticastAddresses

const otNetifMulticastAddress * otIp6GetMulticastAddresses(
  otInstance *aInstance
)

Pobiera listę adresów multiemisji IPv6 subskrybowanych w interfejsie Thread.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Zwroty
Wskaźnik do pierwszego adresu Multicast interfejsu sieciowego.

OTIp6GetPrefix

void otIp6GetPrefix(
  const otIp6Address *aAddress,
  uint8_t aLength,
  otIp6Prefix *aPrefix
)

Ta metoda otrzymuje prefiks z aLength z aAddress.

Szczegóły
Parametry
[in] aAddress
Wskaźnik do adresu IPv6.
[in] aLength
Długość prefiksu w bitach.
[out] aPrefix
Wskaźnik wyświetlający prefiks IPv6.

OTIp6GetUnicastAddress

const otNetifAddress * otIp6GetUnicastAddresses(
  otInstance *aInstance
)

Pobiera listę adresów IPv6 przypisanych do interfejsu Thread.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Zwroty
Wskaźnik do pierwszego adresu interfejsu sieci.

OTIp6Pobierz niezabezpieczone porty

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

Ta funkcja zwraca wskaźnik na listę niezabezpieczonych portów.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[out] aNumEntries
Liczba pozycji na liście.
Zwroty
Wskaźnik do listy niezabezpieczonych portów.

otIp6IsAddressEqual

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

Sprawdź, czy 2 adresy IPv6 są takie same.

Szczegóły
Parametry
[in] aFirst
Wskaźnik do pierwszego adresu IPv6 do porównania.
[in] aSecond
Wskaźnik do drugiego adresu IPv6 do porównania.
Wartości zwracane
TRUE
Adresy IPv6 są takie same.
FALSE
Adresy IPv6 nie są takie same.

Nieokreślony adres IP

bool otIp6IsAddressUnspecified(
  const otIp6Address *aAddress
)

Ta funkcja wskazuje, czy dany adres IPv6 jest nieokreślonym adresem.

Szczegóły
Parametry
[in] aAddress
Wskaźnik do adresu IPv6.
Wartości zwracane
TRUE
Jeśli adres IPv6 jest nieokreślonym adresem.
FALSE
Jeśli adres IPv6 nie jest nieokreślonym adresem.

OTIp6IsEnabled

bool otIp6IsEnabled(
  otInstance *aInstance
)

Wskazuje, czy interfejs IPv6 działa.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Wartości zwracane
TRUE
Interfejs IPv6 jest włączony.
FALSE
Interfejs IPv6 jest wyłączony.

OTIp6IsMulticastPromiscuousEnabled

bool otIp6IsMulticastPromiscuousEnabled(
  otInstance *aInstance
)

Sprawdza, czy w trybie wątku włączony jest tryb multiemisji.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Zobacz też:
otIp6SetMulticastPromiscuousEnabled

OTIp6IsReceivedFilterEnabled

bool otIp6IsReceiveFilterEnabled(
  otInstance *aInstance
)

Ta funkcja wskazuje, czy ruch związany z kontrolą wątków jest odfiltrowywany przy dostarczaniu Gradientów IPv6 za pomocą wywołania zwrotnego określonego w funkcji otIp6SetOdbierzCall().

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Zwroty
Wartość TRUE (prawda), jeśli ruch związany z kontrolą wątku jest odfiltrowany. W przeciwnym razie ma wartość FALSE (fałsz).
Zobacz też:
otIp6SetOdbierzCallback
otIp6SetReceivedFilterEnabled

Funkcja OTIp6IsSlaacEnabled

bool otIp6IsSlaacEnabled(
  otInstance *aInstance
)

Ta funkcja wskazuje, czy moduł SLAAC jest włączony.

Ta funkcja wymaga włączenia funkcji czasu kompilacji OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Szczegóły
Wartości zwracane
TRUE
Moduł SLAAC jest włączony.
FALSE
Moduł SLAAC jest wyłączony.

OTIp6NewMessage

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

Przydziel nowy bufor wiadomości do wysyłania wiadomości IPv6.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aSettings
Wskaźnik do ustawień wiadomości lub wartość NULL, aby ustawić ustawienia domyślne.
Zwroty
Wskaźnik, który wskazuje, że bufor wiadomości nie jest dostępny lub parametry są nieprawidłowe.
Zobacz też:
otMessageFree

Ot6NewMessageFromBuffer

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

Przydziel nowy bufor wiadomości i zapisz dane w formacie IPv6 w buforze wiadomości, aby wysłać wiadomość IPv6.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aData
Wskazuje bufor danych IPv6 IPv6.
[in] aDataLength
Rozmiar bufora Datagramu IPv6 wskazywany przez aData.
[in] aSettings
Wskaźnik do ustawień wiadomości lub wartość NULL, aby ustawić ustawienia domyślne.
Zwroty
Wskaźnik wskazujący wiadomość lub wartość NULL, jeśli podany jest nieprawidłowy nagłówek IPv6 lub niewystarczające bufory wiadomości.
Zobacz też:
otMessageFree

OTIp6PrefiksDopasowanie

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

Ta funkcja zwraca długość dopasowania prefiksu (bity) dla 2 adresów IPv6.

Szczegóły
Parametry
[in] aFirst
Wskaźnik do pierwszego adresu IPv6.
[in] aSecond
Wskaźnik do drugiego adresu IPv6.
Zwroty
Długość dopasowania prefiksu w bitach.

OTIp6PrefiksToString

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

Ta funkcja konwertuje określony prefiks IPv6 na ciąg czytelny dla człowieka.

Ciąg adresu IPv6 ma format „%x:%x:%x:...[::]/plen”.

Jeśli powstały ciąg znaków nie zmieści się w polu aBuffer (znajduje się w zakresie aSize), ciąg zostanie skrócony, ale wyjściowy ciąg będzie miał wartość null.

Szczegóły
Parametry
[in] aPrefix
Wskaźnik do prefiksu IPv6 (NIE może być wartością NULL).
[out] aBuffer
Wskaźnik wskazujący tablicę znaków, aby wyświetlić ciąg znaków (NIE może być wartością NULL).
[in] aSize
Rozmiar elementu aBuffer (w bajtach). Zalecane użycie: OT_IP6_PREFIX_STRING_SIZE.

Ciąg znaków na prototomie 6Iot

const char * otIp6ProtoToString(
  uint8_t aIpProto
)

Ta funkcja konwertuje określony numer protokołu IP na ciąg czytelny dla człowieka.

Szczegóły
Parametry
[in] aIpProto
Numer protokołu IP (wyliczenie OT_IP6_PROTO_*).
Zwroty
Ciąg znaków reprezentujący element aIpProto.

OTIp6RegisterMulticastsłuchanie

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

Ta funkcja rejestruje detektory multicastu na głównym routerze szkieletowym.

Uwaga: ta opcja jest dostępna tylko wtedy, gdy włączone są usługi OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE i OPENTHREAD_CONFIG_COMMISSIONER_ENABLE).

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aAddresses
Tablica adresów multicastów do zarejestrowania.
[in] aAddressNum
Liczba adresów multicastów do zarejestrowania (0, jeśli aAddresses ma wartość NULL).
[in] aTimeout
Wskaźnik wartości limitu czasu (w sekundach), który ma zostać uwzględniony w MLR.req. Wartość czasu oczekiwania 0 usuwa odpowiedni detektor Multicast. Jeśli wartość jest ustawiona na NULL, MLR.req nie będzie mieć domyślnie czasu oczekiwania.
[in] aCallback
Wskaźnik funkcji wywołania zwrotnego.
[in] aContext
Wskaźnik do kontekstu użytkownika.
Wartości zwracane
OT_ERROR_NONE
MLR.req został wysłany. aCallback będzie mieć nazwę iff, która zwraca OT_ERROR_NONE.
OT_ERROR_BUSY
Jeśli wcześniejsza rejestracja nadal trwa.
OT_ERROR_INVALID_ARGS
Jeśli co najmniej 1 argument jest nieprawidłowy.
OT_ERROR_INVALID_STATE
Jeśli urządzenie nie zostało prawidłowo wysłane, aby wysłać MLR.req (np. nie uruchomiono usługi Commissioner, nie znaleziono głównego routera szkieletowego).
OT_ERROR_NO_BUFS
Jeśli nie ma wystarczających buforów wiadomości.
Zobacz też:
otIp6RegisterMulticastListenersCallback

Usunięcie wszystkich zabezpieczonych portów

void otIp6RemoveAllUnsecurePorts(
  otInstance *aInstance
)

Ta funkcja usuwa wszystkie porty z listy dozwolonych portów niezabezpieczonych.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.

Usunięcie adresu e-mail

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

Usuwa adres interfejsu sieci z interfejsu Thread.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aAddress
Wskaźnik do adresu IP.
Wartości zwracane
OT_ERROR_NONE
Usunięto adres sieci.
OT_ERROR_INVALID_ARGS
Adres IP wskazywany przez adres aAddress jest adresem wewnętrznym.
OT_ERROR_NOT_FOUND
Nie znaleziono adresu IP określonego w polu aAddress.

Usunięcie połączenia niezabezpieczonego przez port OTIp6

otError otIp6RemoveUnsecurePort(
  otInstance *aInstance,
  uint16_t aPort
)

Ta funkcja usuwa port z listy dozwolonych zabezpieczonych portów.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aPort
Numer portu.
Wartości zwracane
OT_ERROR_NONE
Port został usunięty z listy dozwolonych portów niezabezpieczonych.
OT_ERROR_INVALID_ARGS
Port jest nieprawidłowy (wartość 0 jest zarezerwowana tylko do użytku wewnętrznego).
OT_ERROR_NOT_FOUND
Nie znaleziono portu na liście niezabezpieczonych portów.

Liczniki routingu otIp6ResetBorderRouting

void otIp6ResetBorderRoutingCounters(
  otInstance *aInstance
)

Resetuje liczniki routingu granicy.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.

OTIp6SelectSourceAddress.

otError otIp6SelectSourceAddress(
  otInstance *aInstance,
  otMessageInfo *aMessageInfo
)

Ta funkcja przeprowadza wybór adresu źródłowego OpenThread.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in,out] aMessageInfo
Wskaźnik do informacji o wiadomości.
Wartości zwracane
OT_ERROR_NONE
Znaleziono adres źródłowy i jest wypełniany w pliku mSockAddr pliku aMessageInfo.
OT_ERROR_NOT_FOUND
Nie znaleziono adresu źródłowego. Zmieniono aMessageInfo.

OTIp6Send

otError otIp6Send(
  otInstance *aInstance,
  otMessage *aMessage
)

Ta funkcja wysyła dane z użyciem protokołu IPv6 za pomocą interfejsu Thread.

W trakcie połączenia rozmówca jest właścicielem domeny aMessage. OpenThread zwolni aMessage po zakończeniu przetwarzania, w tym po zwróceniu wartości innej niż OT_ERROR_NONE.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aMessage
Wskaźnik do bufora wiadomości zawierający datagram IPv6.
Wartości zwracane
OT_ERROR_NONE
Wiadomość została przetworzona.
OT_ERROR_DROP
Wiadomość została prawidłowo utworzona, ale nie została w pełni przetworzona z powodu reguł przetwarzania pakietów.
OT_ERROR_NO_BUFS
Nie udało się przypisać niezbędnych buforów wiadomości podczas przetwarzania datagramu.
OT_ERROR_NO_ROUTE
Brak trasy do hosta.
OT_ERROR_INVALID_SOURCE_ADDRESS
Adres źródłowy jest nieprawidłowy, na przykład adres anycast lub multicast.
OT_ERROR_PARSE
Podczas przetwarzania wiadomości wystąpił nieprawidłowy nagłówek.

OTIp6SetAddressCallback

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

Ta funkcja rejestruje wywołanie zwrotne w celu powiadomienia o wewnętrznych zmianach adresu IPv6.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aCallback
Wskaźnik do funkcji wywoływanej po dodaniu lub usunięciu wewnętrznego adresu IPv6. Wartość NULL, aby wyłączyć wywołanie zwrotne.
[in] aCallbackContext
Wskaźnik do kontekstu aplikacji.

OTIp6SetEnabled

otError otIp6SetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Przenosi interfejs IPv6 w górę lub w dół.

Wywołaj to, aby włączyć lub wyłączyć komunikację IPv6.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aEnabled
Wartość TRUE (prawda), aby włączyć IPv6, lub FALSE (fałsz).
Wartości zwracane
OT_ERROR_NONE
Interfejs IPv6 został wyświetlony.
OT_ERROR_INVALID_STATE
Interfejs IPv6 jest niedostępny, ponieważ urządzenie działa w trybie nieprzetworzonego linku (dotyczy tylko wtedy, gdy włączona jest funkcja OPENTHREAD_CONFIG_LINK_RAW_ENABLE).

OTIp6SetMeshLocalIid

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

Ta funkcja ustawia lokalny identyfikator sieci typu mesh (do celów testowych).

Ta opcja jest dostępna tylko wtedy, gdy zasada OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE jest włączona.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aIid
Wskaźnik do lokalnego identyfikatora sieci typu mesh do ustawienia.
Wartości zwracane
OT_ERROR_NONE
Lokalny identyfikator sieci typu mesh został ustawiony.
OT_ERROR_INVALID_STATE
Protokoły wątków są włączone.

WotIp6SetMulticastPromiscuousEnabled

void otIp6SetMulticastPromiscuousEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Włącza lub wyłącza tryb widoczności multicast w interfejsie Thread.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aEnabled
Wartość TRUE (prawda), aby włączyć tryb multiemisji, lub FALSE (fałsz).
Zobacz też:
otIp6IsMulticastPromiscuousEnabled

OTIp6SetOdbierzCallback

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

Ta funkcja rejestruje wywołanie zwrotne, które dostarcza Gradle danych IPv6.

Domyślnie to wywołanie zwrotne nie przekazuje ruchu kontrolnego w wątku. Aby zmienić ustawienie filtra ruchu w wątku, otwórz sekcję otIp6SetReceivedFilterEnabled().

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aCallback
Wskaźnik do funkcji wywoływanej w przypadku otrzymania danych IPv6 lub NULL, by wyłączyć wywołanie zwrotne.
[in] aCallbackContext
Wskaźnik do kontekstu aplikacji.
Zobacz też:
otIp6IsReceivedFilterEnabled
otIp6SetReceivedFilterEnabled

OTIp6SetReceivedFilterEnabled

void otIp6SetReceiveFilterEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ta funkcja określa, czy ruch związany z kontrolą w wątkach jest filtrowany podczas dostarczania gramatów IPv6 przez wywołanie zwrotne określone w funkcji otIp6SetReceivedCall()().

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aEnabled
Wartość TRUE (prawda), jeśli ruch związany z kontrolą wątku jest odfiltrowany. W przeciwnym razie ma wartość FALSE (fałsz).
Zobacz też:
otIp6SetReceivedCallback
OTOTReceivedIp6FilterEnabled

Włączony OTIp6SetSlaac

void otIp6SetSlaacEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ta funkcja włącza lub wyłącza moduł SLAAC.

Ta funkcja wymaga włączenia funkcji czasu kompilacji OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Gdy moduł SLAAC jest włączony, do interfejsu dodawane są adresy SLAAC (na podstawie prefiksów sieci typu mesh w danych sieci). Jeśli moduł SLAAC jest wyłączony, wcześniej dodany adres SLAAC jest usuwany.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aEnabled
Wartość TRUE (prawda), aby włączyć, lub FALSE (fałsz), by wyłączyć.

OTIp6SetSlaacPrefixFilter

void otIp6SetSlaacPrefixFilter(
  otInstance *aInstance,
  otIp6SlaacPrefixFilter aFilter
)

Ta funkcja ustawia moduł obsługi filtra SLAAC.

Ta funkcja wymaga włączenia funkcji czasu kompilacji OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE.

Moduł obsługi filtra jest wywoływany przez moduł SLAAC, gdy ma on dodać adres SLAAC na podstawie prefiksu, aby określić, czy ma zostać dodany adres.

Moduł obsługi filtra typu NULL wyłącza filtrowanie i umożliwia dodawanie wszystkich adresów SLAAC.

Jeśli ta funkcja nie zostanie wywołana, domyślnym filtrem używanym przez moduł SLAAC jest wartość NULL (filtrowanie jest wyłączone).

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aFilter
Wskaźnik obsługi filtra prefiksu SLAAC lub NULL, aby wyłączyć filtrowanie.

OTIp6SockAddrToString

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

Ta funkcja konwertuje określony adres gniazda IPv6 na ciąg zrozumiały dla człowieka.

Ciąg adresu IPv6 protokołu ma format [address]:port, gdzie address jest wyświetlany jako 16 wartości szesnastkowych rozdzielonych :, a port to numer portu w formacie dziesiętnym, na przykład „[%x:%x:...:%x]:%u”.

Jeśli powstały ciąg znaków nie zmieści się w polu aBuffer (znajduje się w zakresie aSize), ciąg zostanie skrócony, ale wyjściowy ciąg będzie miał wartość null.

Szczegóły
Parametry
[in] aSockAddr
Wskaźnik do adresu gniazda IPv6 (NIE może być wartością NULL).
[out] aBuffer
Wskaźnik wskazujący tablicę znaków, aby wyświetlić ciąg znaków (NIE może być wartością NULL).
[in] aSize
Rozmiar elementu aBuffer (w bajtach). Zalecane użycie: OT_IP6_SOCK_ADDR_STRING_SIZE.

Adres OTIp6Subskrybuj Multicast

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

Subskrybuje interfejs Thread adresu adresu multiemisji interfejsu sieciowego.

Przekazywany w instancji aAddress zostanie skopiowany przez interfejs Thread. Interfejs Thread obsługuje tylko stałą liczbę zewnętrznych adresów dodawania multicast. Zobacz OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aAddress
Wskaźnik do adresu IP.
Wartości zwracane
OT_ERROR_NONE
Adres multiemisji interfejsu sieciowego został zasubskrybowany.
OT_ERROR_ALREADY
Adres multicast jest już subskrybowany.
OT_ERROR_INVALID_ARGS
Adres IP wskazywany przez adres aAddress jest nieprawidłowym adresem multicast.
OT_ERROR_REJECTED
Adres IP wskazywany przez adres aAddress to wewnętrzny adres multicast.
OT_ERROR_NO_BUFS
Interfejs sieci przechowuje już maksymalną dozwoloną liczbę zewnętrznych adresów multicast.

OTIp6Anuluj subskrypcję Multicast

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

Anulowanie subskrypcji interfejsu Thread na adres multiemisji interfejsu sieciowego.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aAddress
Wskaźnik do adresu IP.
Wartości zwracane
OT_ERROR_NONE
Anulowano subskrypcję multiemisji interfejsu sieciowego.
OT_ERROR_REJECTED
Adres IP wskazywany przez adres aAddress jest adresem wewnętrznym.
OT_ERROR_NOT_FOUND
Nie znaleziono adresu IP określonego w polu aAddress.

Makra

OT_IP6_ADDRESS_SIZE

 OT_IP6_ADDRESS_SIZE 16

Rozmiar adresu IPv6 (bajty)

OT_IP6_ADDRESS_STRING_SIZE

 OT_IP6_ADDRESS_STRING_SIZE 40

Zalecany rozmiar reprezentujący ciąg adresu IPv6.

OT_IP6_IID_Rozmiar

 OT_IP6_IID_SIZE 8

Rozmiar identyfikatora interfejsu IPv6 (bajty)

OT_IP6_MAX_MLR_ADDRESSES

 OT_IP6_MAX_MLR_ADDRESSES 15

Maksymalna liczba adresów IPv6 obsługiwanych przez rejestrację detektorów Multicast.

OT_IP6_PREFIX_BITSIZE

 OT_IP6_PREFIX_BITSIZE (OT_IP6_PREFIX_SIZE * 8)

Rozmiar prefiksu IPv6 (w bitach)

OT_IP6_PREFIX_SIZE

 OT_IP6_PREFIX_SIZE 8

Rozmiar prefiksu IPv6 (bajty)

OT_IP6_PREFIX_STRING_SIZE

 OT_IP6_PREFIX_STRING_SIZE 45

Zalecany rozmiar reprezentujący ciąg znaków IPv6.

OT_IP6_SOCK_ADDR_STRING_SIZE

 OT_IP6_SOCK_ADDR_STRING_SIZE 48

Zalecany rozmiar reprezentujący ciąg adresu adresu IP IPv6.

Zasoby

Tematy referencyjne interfejsu API OpenThread pochodzą z kodu źródłowego, który jest dostępny w GitHub. Więcej informacji oraz linki do dokumentacji znajdziesz w zasobach.