nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

Objek di class ini mewakili endpoint jaringan IP mentah.

Ringkasan

Nest Inet Layer mengenkapsulasi metode untuk berinteraksi dengan endpoint jaringan IP (soket SOCK_RAW di sistem turunan BSD dan Linux) atau blok kontrol protokol raw LwIP, karena sistem telah dikonfigurasi dengan tepat.

Inheritance

Mewarisi dari: nl::Inet::IPEndPointBasis

Atribut publik

IPProto
IPProtocol
versi dari {i>Internet Control Message Protocol<i} (ICMP)
IPVer
IPVersion
Versi protokol Internet.

Fungsi publik

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Ikat endpoint ke alamat IP antarmuka.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Ikat endpoint mentah ke alamat cakupan link-local IPv6 di indeks antarmuka yang ditentukan.
BindInterface(IPAddressType addrType, InterfaceId intf)
Ikat endpoint ke antarmuka jaringan.
Close(void)
void
Tutup endpoint.
Free(void)
void
Menutup endpoint dan mendaur ulang memorinya.
GetBoundInterface(void)
InterfaceId
Dapatkan antarmuka terikat di endpoint ini.
Listen(void)
Siapkan endpoint untuk menerima pesan ICMP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Mengirim pesan ICMP ke tujuan yang ditentukan.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Sinonim untuk SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Mengirim pesan ICMP ke alamat tujuan yang ditentukan.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Tetapkan parameter filter ICMP6 di stack jaringan.

Atribut publik

IPProto

IPProtocol IPProto

versi dari {i>Internet Control Message Protocol<i} (ICMP)

Meskipun kolom ini adalah variabel class yang dapat berubah, kolom ini merupakan invarian dari class yang tidak diubah.

IPVer

IPVersion IPVer

Versi protokol Internet.

Meskipun kolom ini adalah variabel class yang dapat berubah, kolom ini merupakan invarian dari class yang tidak diubah.

Fungsi publik

Ikat

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  InterfaceId intfId
)

Ikat endpoint ke alamat IP antarmuka.

Mengikat endpoint ke alamat IP antarmuka jaringan yang ditentukan.

Detail
Parameter
[in] addrType
versi protokol alamat IP
[in] addr
alamat IP (harus berupa alamat antarmuka)
[in] intfId
indikator antarmuka jaringan opsional
Nilai yang Ditampilkan
INET_NO_ERROR
sukses: titik akhir terikat ke alamat
INET_ERROR_INCORRECT_STATE
endpoint telah diikat sebelumnya
INET_NO_MEMORY
memori endpoint tidak cukup
INET_ERROR_UNKNOWN_INTERFACE
Pada beberapa platform, antarmuka yang ditentukan secara opsional tidak ada.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType tidak cocok dengan IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType adalah kIPAddressType_Any, atau jenis addr tidak sama dengan addrType.
other
error sistem atau platform lain

Di LwIP, metode ini tidak boleh dipanggil dengan kunci stack LwIP yang sudah diperoleh.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Ikat endpoint mentah ke alamat cakupan link-local IPv6 di indeks antarmuka yang ditentukan.

Juga menetapkan berbagai opsi soket IPv6 yang sesuai untuk mentransmisikan paket ke dan dari tujuan di link.

Mengikat endpoint ke alamat link-local IPv6 addr pada antarmuka jaringan yang ditunjukkan oleh intf.

Detail
Parameter
[in] intf
InterfaceId untuk mengidentifikasi cakupan alamat.
[in] addr
Objek IPAddress cakupan link-local IPv6.
Parameter
[in] intf
indikator antarmuka jaringan,
[in] addr
alamat IP (harus berupa alamat antarmuka)
Nilai yang Ditampilkan
INET_NO_ERROR
sukses: titik akhir terikat ke alamat
INET_ERROR_INCORRECT_STATE
endpoint telah diikat sebelumnya
INET_NO_MEMORY
memori endpoint tidak cukup
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType tidak cocok dengan IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addr bukan alamat link-local IPv6 atau intf adalah INET_NULL_INTERFACEID.
other
error sistem atau platform lain
Hasil
INET_NO_ERROR jika berhasil, atau error OS yang dipetakan jika gagal. Daftar parameter yang tidak valid dapat menyebabkan INET_ERROR_WRONG_ADDRESS_TYPE. Jika endpoint mentah sudah terikat atau sedang memproses, INET_ERROR_INCORRECT_State akan ditampilkan. Ikat endpoint ke alamat link-local IPv6 antarmuka.

Di LwIP, metode ini tidak boleh dipanggil dengan kunci stack LwIP yang sudah diperoleh.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Ikat endpoint ke antarmuka jaringan.

Mengikat endpoint ke alamat IP antarmuka jaringan yang ditentukan.

Detail
Parameter
[in] addrType
versi protokol dari alamat IP.
[in] intf
indikator antarmuka jaringan.
Nilai yang Ditampilkan
INET_NO_ERROR
sukses: titik akhir terikat ke alamat
INET_NO_MEMORY
memori endpoint tidak cukup
INET_ERROR_NOT_IMPLEMENTED
implementasi sistem belum selesai.
INET_ERROR_UNKNOWN_INTERFACE
Pada beberapa platform, antarmuka tidak ada.
other
error sistem atau platform lain

Di LwIP, metode ini tidak boleh dipanggil dengan kunci stack LwIP yang sudah diperoleh.

Tutup

void Close(
  void
)

Tutup endpoint.

Jika mState != kState_Closed, akan menutup endpoint, menghapusnya dari kumpulan endpoint yang memenuhi syarat untuk peristiwa komunikasi.

Pada sistem LwIP, metode ini tidak boleh dipanggil dengan kunci stack LwIP yang sudah diperoleh.

Gratis

void Free(
  void
)

Menutup endpoint dan mendaur ulang memorinya.

Memanggil metode Close, lalu memanggil metode InetLayerBasis::Release untuk menampilkan objek ke kumpulan memorinya.

Pada sistem LwIP, metode ini tidak boleh dipanggil dengan kunci stack LwIP yang sudah diperoleh.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Dapatkan antarmuka terikat di endpoint ini.

Detail
Hasil
InterfaceId ID antarmuka terikat.

Dengarkan

INET_ERROR Listen(
  void
)

Siapkan endpoint untuk menerima pesan ICMP.

Jika mState sudah kState_Listening, tidak ada operasi yang dilakukan. Jika tidak, mState akan ditetapkan ke kState_Listening dan endpoint akan disiapkan untuk menerima pesan ICMPv6, sesuai dengan semantik platform.

Detail
Nilai yang Ditampilkan
INET_NO_ERROR
selalu ditampilkan.

Di LwIP, metode ini tidak boleh dipanggil dengan kunci stack LwIP yang sudah diperoleh

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Mengirim pesan ICMP ke tujuan yang ditentukan.

 Send the ICMP message \c msg using the destination information given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Detail
Parameter
[in] pktInfo
informasi tujuan untuk pesan
[in] msg
{i>buffer<i} paket yang berisi pesan UDP
[in] sendFlags
tanda opsi transmisi opsional
Nilai yang Ditampilkan
INET_NO_ERROR
berhasil: msg diantrekan untuk pengiriman.
INET_ERROR_NOT_SUPPORTED
sistem tidak mendukung operasi yang diminta.
INET_ERROR_WRONG_ADDRESS_TYPE
alamat tujuan dan alamat antarmuka terikat tidak memiliki versi protokol atau jenis alamat yang cocok.
INET_ERROR_MESSAGE_TOO_LONG
msg tidak berisi seluruh pesan ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Di beberapa platform, hanya bagian msg yang terpotong yang diantrekan untuk dikirim.
other
error sistem atau platform lain

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Sinonim untuk SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags).

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Mengirim pesan ICMP ke alamat tujuan yang ditentukan.

 Send the ICMP message in \c msg to the destination given in \c addr.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Detail
Parameter
[in] addr
alamat IP tujuan
[in] intfId
indikator antarmuka jaringan opsional
[in] msg
{i>buffer<i} paket yang berisi pesan UDP
[in] sendFlags
tanda opsi transmisi opsional
Nilai yang Ditampilkan
INET_NO_ERROR
berhasil: msg diantrekan untuk pengiriman.
INET_ERROR_NOT_SUPPORTED
sistem tidak mendukung operasi yang diminta.
INET_ERROR_WRONG_ADDRESS_TYPE
alamat tujuan dan alamat antarmuka terikat tidak memiliki versi protokol atau jenis alamat yang cocok.
INET_ERROR_MESSAGE_TOO_LONG
msg tidak berisi seluruh pesan ICMP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Di beberapa platform, hanya bagian msg yang terpotong yang diantrekan untuk dikirim.
other
error sistem atau platform lain

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Tetapkan parameter filter ICMP6 di stack jaringan.

Terapkan parameter pemfilteran ICMPv6 untuk kode di aICMPTypes ke endpoint yang mendasarinya dalam stack jaringan sistem.

Detail
Parameter
[in] numICMPTypes
panjang array pada aICMPTypes
[in] aICMPTypes
seperangkat kode jenis ICMPv6 untuk disaring.
Nilai yang Ditampilkan
INET_NO_ERROR
berhasil: parameter filter ditetapkan
INET_ERROR_NOT_IMPLEMENTED
sistem tidak menerapkan
INET_ERROR_WRONG_ADDRESS_TYPE
endpoint bukan jenis IPv6
INET_ERROR_WRONG_PROTOCOL_TYPE
endpoint bukan jenis ICMP6
other
error sistem atau platform lain