Pengelola {i>Border Routing<i}
Modul ini berisi definisi yang terkait dengan {i>Border Routing Manager<i}.
Ringkasan
Semua fungsi dalam modul ini memerlukan OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE
untuk diaktifkan.
Border Routing Manager menangani perutean dua arah antara jaringan Thread dan tautan infrastruktur yang berdekatan (AIL).
Layanan ini memancarkan pesan ICMRv6 ND Router Advertisingment (RA) pada AIL untuk mengiklankan awalan rute dan link. API ini juga memproses pesan RA yang diterima dari infrastruktur dan mencerminkan awalan yang ditemukan di Data Jaringan Thread untuk memastikan perangkat pada mesh Thread dapat mencapai AIL melalui Router Pembatas.
Routing Manager mengelola awalan Off-Mesh Routable (OMR) pada data Jaringan Thread yang mengonfigurasi perangkat Thread dengan alamat IPv6 Routable Off-Mesh yang sesuai. Protokol ini mengumumkan keterjangkauan awalan ini pada AIL dengan menyertakannya dalam pesan RA yang dihasilkan sebagai IPv6 Route Information Option (RIO).
Pengelola {i>Routing<i} juga memantau dan menambahkan awalan {i>on-link<i} pada jaringan infrastruktur. Jika router di AIL sudah menyediakan pesan RA yang berisi IPv6 Prefix Information Option (PIO) yang memungkinkan perangkat IPv6 pada tautan untuk mengonfigurasi sendiri alamat IPv6 unicast routable mereka sendiri, alamat ini dapat digunakan oleh perangkat Thread untuk mencapai AIL. Jika tidak menemukan pesan RA di AIL, Border Router akan membuat prefiks on-link ULA yang kemudian diiklankan di AIL dalam pesan RA yang dimunculkan.
Enumerasi |
|
---|---|
otBorderRoutingDhcp6PdState{
|
enum Enumerasi ini mewakili status Status Delegasi Awalan DHCPv6. |
otBorderRoutingState{
|
enum Menampilkan status Border Routing Manager. |
Typedef |
|
---|---|
otBorderRoutingPrefixTableEntry
|
typedef Menampilkan entri dari tabel awalan yang ditemukan. |
otBorderRoutingPrefixTableIterator
|
typedef Merepresentasikan iterator untuk melakukan iterasi melalui tabel awalan yang ditemukan oleh Border Router. |
otBorderRoutingRouterEntry
|
typedefstruct otBorderRoutingRouterEntry
Merepresentasikan router yang ditemukan pada link infrastruktur. |
otPdProcessedRaInfo
|
typedefstruct otPdProcessedRaInfo
Mewakili grup data pesan RA yang dihasilkan platform yang diproses. |
Fungsi |
|
---|---|
otBorderRoutingClearRouteInfoOptionPreference(otInstance *aInstance)
|
void
Menghapus nilai preferensi yang ditetapkan sebelumnya untuk Opsi Info Rute yang diiklankan.
|
otBorderRoutingClearRoutePreference(otInstance *aInstance)
|
void
Menghapus nilai preferensi yang ditetapkan sebelumnya untuk rute yang dipublikasikan di Data Jaringan.
|
otBorderRoutingDhcp6PdGetState(otInstance *aInstance)
|
Mendapatkan status Delegasi Awalan DHCPv6 saat ini.
|
otBorderRoutingDhcp6PdSetEnabled(otInstance *aInstance, bool aEnabled)
|
void
Mengaktifkan / Menonaktifkan Delegasi Awalan DHCPv6.
|
otBorderRoutingGetFavoredNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Mendapatkan awalan NAT64 yang saat ini disukai.
|
otBorderRoutingGetFavoredOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference)
|
Mendapatkan Awalan Off-Mesh-Routable (OMR) yang saat ini disukai.
|
otBorderRoutingGetFavoredOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Mendapatkan Awalan On-Link yang saat ini disukai.
|
otBorderRoutingGetNat64Prefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Mendapatkan Awalan NAT64 lokal dari Border Router.
|
otBorderRoutingGetNextPrefixTableEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry)
|
Melakukan iterasi pada entri dalam tabel awalan yang ditemukan oleh Border Router.
|
otBorderRoutingGetNextRouterEntry(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry)
|
Melakukan iterasi melalui entri router yang ditemukan di link infrastruktur.
|
otBorderRoutingGetOmrPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Mendapatkan Awalan Off-Mesh-Routable (OMR) lokal, misalnya
fdfc:1ff5:1512:5622::/64 . |
otBorderRoutingGetOnLinkPrefix(otInstance *aInstance, otIp6Prefix *aPrefix)
|
Mendapatkan Awalan On-Link lokal untuk link infrastruktur yang berdekatan.
|
otBorderRoutingGetPdOmrPrefix(otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo)
|
Mendapatkan awalan DHCPv6 Prefix Delegation (PD) yang disediakan off-mesh-routable (OMR).
|
otBorderRoutingGetPdProcessedRaInfo(otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo)
|
Mendapatkan data pesan RA yang dihasilkan platform yang diproses.
|
otBorderRoutingGetRouteInfoOptionPreference(otInstance *aInstance)
|
Mendapatkan preferensi saat ini yang digunakan saat mengiklankan Route Info Options (RIO) dalam pesan Iklan Router yang dikirim melalui link infrastruktur.
|
otBorderRoutingGetRoutePreference(otInstance *aInstance)
|
Mendapatkan preferensi saat ini yang digunakan untuk rute yang dipublikasikan di Data Jaringan.
|
otBorderRoutingGetState(otInstance *aInstance)
|
Mendapatkan status Border Routing Manager saat ini.
|
otBorderRoutingInit(otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning)
|
Menginisialisasi Border Routing Manager pada antarmuka infrastruktur yang diberikan.
|
otBorderRoutingPrefixTableInitIterator(otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator)
|
void
Menginisialisasi
otBorderRoutingPrefixTableIterator . |
otBorderRoutingSetEnabled(otInstance *aInstance, bool aEnabled)
|
Mengaktifkan atau menonaktifkan Pengelola Perutean Batas.
|
otBorderRoutingSetRouteInfoOptionPreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Secara eksplisit menetapkan preferensi yang akan digunakan saat mengiklankan Opsi Info Rute (RIO) dalam pesan Iklan Router yang dikirim melalui link infrastruktur.
|
otBorderRoutingSetRoutePreference(otInstance *aInstance, otRoutePreference aPreference)
|
void
Menetapkan preferensi rute yang dipublikasikan di Data Jaringan secara eksplisit.
|
Struct |
|
---|---|
otBorderRoutingPrefixTableEntry |
Menampilkan entri dari tabel awalan yang ditemukan. |
otBorderRoutingPrefixTableIterator |
Merepresentasikan iterator untuk melakukan iterasi melalui tabel awalan yang ditemukan oleh Border Router. |
otBorderRoutingRouterEntry |
Merepresentasikan router yang ditemukan pada link infrastruktur. |
otPdProcessedRaInfo |
Mewakili grup data pesan RA yang dihasilkan platform yang diproses. |
Enumerasi
otBorderRoutingDhcp6PdState
otBorderRoutingDhcp6PdState
Enumerasi ini mewakili status Status Delegasi Awalan DHCPv6.
Properti | |
---|---|
OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED
|
DHCPv6 PD dinonaktifkan di router pembatas. |
OT_BORDER_ROUTING_DHCP6_PD_STATE_RUNNING
|
DHCPv6 PD diaktifkan dan akan mencoba meminta serta memublikasikan awalan. |
OT_BORDER_ROUTING_DHCP6_PD_STATE_STOPPED
|
DHCPv6 PD aktif, tetapi tidak akan mencoba meminta dan memublikasikan awalan. |
otBorderRoutingState
otBorderRoutingState
Menampilkan status Border Routing Manager.
Properti | |
---|---|
OT_BORDER_ROUTING_STATE_DISABLED
|
{i>Routing Manager<i} diinisialisasi tapi dinonaktifkan. |
OT_BORDER_ROUTING_STATE_RUNNING
|
{i>Routing Manager<i} diinisialisasi, diaktifkan, dan dijalankan. |
OT_BORDER_ROUTING_STATE_STOPPED
|
{i>Routing Manager<i} dalam diinisialisasi dan diaktifkan, tetapi saat ini dihentikan. |
OT_BORDER_ROUTING_STATE_UNINITIALIZED
|
Routing Manager tidak diinisialisasi. |
Typedef
otBorderRoutingPrefixTableEntry
struct otBorderRoutingPrefixTableEntry otBorderRoutingPrefixTableEntry
Menampilkan entri dari tabel awalan yang ditemukan.
Entri dalam tabel yang ditemukan akan melacak Opsi Info Awal/Rute dalam pesan Iklan {i>Router<i} yang diterima dari router lain pada tautan infrastruktur.
otBorderRoutingPrefixTableIterator
struct otBorderRoutingPrefixTableIterator otBorderRoutingPrefixTableIterator
Merepresentasikan iterator untuk melakukan iterasi melalui tabel awalan yang ditemukan oleh Border Router.
Kolom dalam jenis ini buram (hanya ditujukan untuk digunakan oleh inti OpenThread) sehingga tidak boleh diakses atau digunakan oleh pemanggil.
Sebelum menggunakan iterator, iterator HARUS diinisialisasi menggunakan otBorderRoutingPrefixTableInitIterator()
.
otBorderRoutingRouterEntry
struct otBorderRoutingRouterEntry otBorderRoutingRouterEntry
Merepresentasikan router yang ditemukan pada link infrastruktur.
otPdProcessedRaInfo
struct otPdProcessedRaInfo otPdProcessedRaInfo
Mewakili grup data pesan RA yang dihasilkan platform yang diproses.
Fungsi
otBorderRoutingClearRouteInfoOptionPreference
void otBorderRoutingClearRouteInfoOptionPreference( otInstance *aInstance )
Menghapus nilai preferensi yang ditetapkan sebelumnya untuk Opsi Info Rute yang diiklankan.
Setelah panggilan ke fungsi ini, BR akan menggunakan peran perangkat untuk menentukan preferensi RIO: Preferensi sedang saat dalam peran router/pemimpin dan preferensi rendah saat dalam peran turunan.
Detail | |||
---|---|---|---|
Parameter |
|
otBorderRoutingClearRoutePreference
void otBorderRoutingClearRoutePreference( otInstance *aInstance )
Menghapus nilai preferensi yang ditetapkan sebelumnya untuk rute yang dipublikasikan di Data Jaringan.
Setelah panggilan ke fungsi ini, BR akan otomatis menentukan preferensi berdasarkan peran perangkat dan kualitas link (ke induk saat bertindak sebagai perangkat akhir).
Detail | |||
---|---|---|---|
Parameter |
|
otBorderRoutingDhcp6PdGetState
otBorderRoutingDhcp6PdState otBorderRoutingDhcp6PdGetState( otInstance *aInstance )
Mendapatkan status Delegasi Awalan DHCPv6 saat ini.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
harus diaktifkan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Status Delegasi Awalan DHCPv6 saat ini.
|
otBorderRoutingDhcp6PdSetEnabled
void otBorderRoutingDhcp6PdSetEnabled( otInstance *aInstance, bool aEnabled )
Mengaktifkan / Menonaktifkan Delegasi Awalan DHCPv6.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
harus diaktifkan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otBorderRoutingGetFavoredNat64Prefix
otError otBorderRoutingGetFavoredNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Mendapatkan awalan NAT64 yang saat ini disukai.
Awalan NAT64 yang disukai dapat ditemukan dari tautan infrastruktur atau dapat berupa awalan NAT64 lokal perangkat ini.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otBorderRoutingGetFavoredOmrPrefix
otError otBorderRoutingGetFavoredOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix, otRoutePreference *aPreference )
Mendapatkan Awalan Off-Mesh-Routable (OMR) yang saat ini disukai.
Awalan OMR yang disukai dapat ditemukan dari Data Jaringan atau dapat berupa awalan OMR lokal perangkat ini.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otBorderRoutingGetFavoredOnLinkPrefix
otError otBorderRoutingGetFavoredOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Mendapatkan Awalan On-Link yang saat ini disukai.
Awalan yang disukai adalah awalan on-link yang ditemukan di link infrastruktur atau awalan on-link lokal.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otBorderRoutingGetNat64Prefix
otError otBorderRoutingGetNat64Prefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Mendapatkan Awalan NAT64 lokal dari Border Router.
Awalan NAT64 mungkin tidak diiklankan di jaringan Thread.
OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
harus diaktifkan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otBorderRoutingGetNextPrefixTableEntry
otError otBorderRoutingGetNextPrefixTableEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingPrefixTableEntry *aEntry )
Melakukan iterasi pada entri dalam tabel awalan yang ditemukan oleh Border Router.
Entri awalan yang terkait dengan router yang ditemukan sama pada tautan infrastruktur dijamin akan dikelompokkan bersama (diambil secara berurutan).
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otBorderRoutingGetNextRouterEntry
otError otBorderRoutingGetNextRouterEntry( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator, otBorderRoutingRouterEntry *aEntry )
Melakukan iterasi melalui entri router yang ditemukan di link infrastruktur.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otBorderRoutingGetOmrPrefix
otError otBorderRoutingGetOmrPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Mendapatkan Awalan Off-Mesh-Routable (OMR) lokal, misalnya fdfc:1ff5:1512:5622::/64
.
Awalan OMR adalah prefiks 64-bit yang dihasilkan secara acak yang dipublikasikan dalam jaringan Thread jika belum ada awalan OMR. Awalan ini dapat dijangkau dari jaringan Wi-Fi atau Ethernet lokal.
Catatan: Saat DHCPv6 PD diaktifkan, router pembatas dapat memublikasikan awalan dari DHCPv6 PD.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otBorderRoutingGetPdOmrPrefix
otBorderRoutingGetOnLinkPrefix
otError otBorderRoutingGetOnLinkPrefix( otInstance *aInstance, otIp6Prefix *aPrefix )
Mendapatkan Awalan On-Link lokal untuk link infrastruktur yang berdekatan.
Awalan On-Link lokal adalah prefiks 64-bit yang diiklankan di link infrastruktur jika belum ada awalan on-link yang dapat digunakan yang diiklankan pada link tersebut.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otBorderRoutingGetPdOmrPrefix
otError otBorderRoutingGetPdOmrPrefix( otInstance *aInstance, otBorderRoutingPrefixTableEntry *aPrefixInfo )
Mendapatkan awalan DHCPv6 Prefix Delegation (PD) yang disediakan off-mesh-routable (OMR).
Hanya kolom mPrefix, mValidLifetime, dan mPreferredLifetime yang digunakan dalam info awalan yang ditampilkan.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
harus diaktifkan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otBorderRoutingGetOmrPrefix
otPlatBorderRoutingProcessIcmp6Ra
otBorderRoutingGetPdProcessedRaInfo
otError otBorderRoutingGetPdProcessedRaInfo( otInstance *aInstance, otPdProcessedRaInfo *aPdProcessedRaInfo )
Mendapatkan data pesan RA yang dihasilkan platform yang diproses.
OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
harus diaktifkan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
otBorderRoutingGetRouteInfoOptionPreference
otRoutePreference otBorderRoutingGetRouteInfoOptionPreference( otInstance *aInstance )
Mendapatkan preferensi saat ini yang digunakan saat mengiklankan Route Info Options (RIO) dalam pesan Iklan Router yang dikirim melalui link infrastruktur.
Preferensi RIO ditentukan sebagai berikut:
- Jika ditetapkan secara eksplisit oleh pengguna dengan memanggil
otBorderRoutingSetRouteInfoOptionPreference()
, preferensi yang diberikan akan digunakan. - Jika tidak, batas ini akan ditentukan berdasarkan peran perangkat saat ini: Preferensi sedang saat dalam peran router/pemimpin dan preferensi rendah saat dalam peran anak.
Detail | |
---|---|
Hasil |
Preferensi Opsi Info Rute saat ini.
|
otBorderRoutingGetRoutePreference
otRoutePreference otBorderRoutingGetRoutePreference( otInstance *aInstance )
Mendapatkan preferensi saat ini yang digunakan untuk rute yang dipublikasikan di Data Jaringan.
Preferensi ditentukan sebagai berikut:
- Jika ditetapkan secara eksplisit oleh pengguna dengan memanggil
otBorderRoutingSetRoutePreference()
, preferensi yang diberikan akan digunakan. - Jika tidak, ID perangkat akan otomatis ditentukan oleh
RoutingManager
berdasarkan peran dan kualitas link perangkat.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Preferensi rute yang dipublikasikan saat ini.
|
otBorderRoutingGetState
otBorderRoutingState otBorderRoutingGetState( otInstance *aInstance )
Mendapatkan status Border Routing Manager saat ini.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Status Border Routing Manager saat ini.
|
otBorderRoutingInit
otError otBorderRoutingInit( otInstance *aInstance, uint32_t aInfraIfIndex, bool aInfraIfIsRunning )
Menginisialisasi Border Routing Manager pada antarmuka infrastruktur yang diberikan.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
otPlatInfraIfStateChanged.
otBorderRoutingSetEnabled.
otBorderRoutingPrefixTableInitIterator
void otBorderRoutingPrefixTableInitIterator( otInstance *aInstance, otBorderRoutingPrefixTableIterator *aIterator )
Menginisialisasi otBorderRoutingPrefixTableIterator
.
Iterator HARUS diinisialisasi sebelum digunakan.
Iterator dapat diinisialisasi lagi untuk memulai ulang dari awal tabel.
Saat melakukan iterasi pada entri dalam tabel, untuk memastikan waktu update mMsecSinceLastUpdate
entri konsisten, entri tersebut diberikan relatif terhadap waktu iterator diinisialisasi.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otBorderRoutingSetEnabled
otError otBorderRoutingSetEnabled( otInstance *aInstance, bool aEnabled )
Mengaktifkan atau menonaktifkan Pengelola Perutean Batas.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
otBorderRoutingSetRouteInfoOptionPreference
void otBorderRoutingSetRouteInfoOptionPreference( otInstance *aInstance, otRoutePreference aPreference )
Secara eksplisit menetapkan preferensi yang akan digunakan saat mengiklankan Opsi Info Rute (RIO) dalam pesan Iklan Router yang dikirim melalui link infrastruktur.
Setelah panggilan ke fungsi ini, BR akan menggunakan preferensi yang diberikan untuk semua RIO yang diiklankan. Preferensi dapat dihapus dengan memanggil otBorderRoutingClearRouteInfoOptionPreference()
.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
otBorderRoutingSetRoutePreference
void otBorderRoutingSetRoutePreference( otInstance *aInstance, otRoutePreference aPreference )
Menetapkan preferensi rute yang dipublikasikan di Data Jaringan secara eksplisit.
Setelah panggilan ke fungsi ini, BR akan menggunakan preferensi yang diberikan. Preferensi dapat dihapus dengan memanggil otBorderRoutingClearRoutePreference()
.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Referensi
Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.