nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

Objek dari class ini mewakili endpoint jaringan IP mentah.

Ringkasan

Nest Inet Layer mengenkapsulasi metode untuk berinteraksi dengan endpoint jaringan IP (soket SOCK_RAW pada sistem yang berasal dari Linux dan BSD) atau blok kontrol protokol mentah LwIP, sesuai dengan konfigurasi sistem yang sesuai.

Inheritance

Mewarisi dari: nl::Inet::IPEndPointBasis

Atribut publik

IPProto
IPProtocol
versi Internet Control Message Protocol (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-lokal IPv6 pada indeks antarmuka yang ditentukan.
BindInterface(IPAddressType addrType, InterfaceId intf)
Ikat endpoint ke antarmuka jaringan.
Close(void)
void
Tutup endpoint.
Free(void)
void
Tutup endpoint dan daur ulang memorinya.
GetBoundInterface(void)
InterfaceId
Mendapatkan antarmuka terikat pada endpoint ini.
Listen(void)
Menyiapkan 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 Internet Control Message Protocol (ICMP)

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

IPVer

IPVersion IPVer

Versi protokol Internet.

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

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 Pengembalian
INET_NO_ERROR
berhasil: endpoint terikat ke alamat
INET_ERROR_INCORRECT_STATE
endpoint telah diikat sebelumnya
INET_NO_MEMORY
memori tidak cukup untuk endpoint
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-lokal IPv6 pada indeks antarmuka yang ditentukan.

Juga menyetel berbagai opsi soket IPv6 yang sesuai untuk mengirim paket ke dan dari tujuan pada link.

Mengikat endpoint ke alamat lokal link IPv6 addr di 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 Pengembalian
INET_NO_ERROR
berhasil: endpoint terikat ke alamat
INET_ERROR_INCORRECT_STATE
endpoint telah diikat sebelumnya
INET_NO_MEMORY
memori tidak cukup untuk endpoint
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 saat gagal. Daftar parameter yang tidak valid dapat menyebabkan INET_ERROR_WRONG_ADDRESS_TYPE. Jika endpoint mentah sudah diikat atau sedang diproses, akan ditampilkan INET_ERROR_INCORRECT_STATE. Ikat endpoint ke alamat lokal link 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 Pengembalian
INET_NO_ERROR
berhasil: endpoint terikat ke alamat
INET_NO_MEMORY
memori tidak cukup untuk endpoint
INET_ERROR_NOT_IMPLEMENTED
implementasi sistem tidak 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, endpoint akan ditutup, dan menghapusnya dari kumpulan endpoint yang memenuhi syarat untuk peristiwa komunikasi.

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

Gratis

void Free(
  void
)

Tutup endpoint dan daur 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 penguncian stack LwIP yang sudah diperoleh.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Mendapatkan antarmuka terikat pada endpoint ini.

Detail
Hasil
InterfaceId ID antarmuka terikat.

Dengarkan

INET_ERROR Listen(
  void
)

Menyiapkan endpoint untuk menerima pesan ICMP.

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

Detail
Nilai Pengembalian
INET_NO_ERROR
selalu dikembalikan.

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 Pengembalian
INET_NO_ERROR
berhasil: msg dimasukkan ke dalam antrean untuk dikirim.
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
Pada beberapa platform, hanya bagian msg yang terpotong yang dimasukkan antrean 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 Pengembalian
INET_NO_ERROR
berhasil: msg dimasukkan ke dalam antrean untuk dikirim.
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
Pada beberapa platform, hanya bagian msg yang terpotong yang dimasukkan antrean 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 pokok di stack jaringan sistem.

Detail
Parameter
[in] numICMPTypes
panjang array pada aICMPTypes
[in] aICMPTypes
set kode jenis ICMPv6 untuk disaring.
Nilai Pengembalian
INET_NO_ERROR
berhasil: kumpulan parameter filter
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