nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Objek di class ini mewakili endpoint protokol IP yang tidak dapat dibuat instance-nya.

Ringkasan

Inheritance

Mewarisi dari: nl::Inet::EndPointBasis
Subclass Langsung yang Diketahui:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

Jenis publik

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Status dinamis dasar endpoint yang mendasari.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
Mengirimkan tanda opsi untuk metode SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Jenis fungsi penanganan peristiwa penerimaan teks pesan.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Jenis fungsi penanganan peristiwa error penerimaan.

Atribut publik

OnMessageReceived
Delegasi fungsi penanganan peristiwa penerimaan pesan endpoint.
OnReceiveError
Endpoint menerima delegasi fungsi penanganan peristiwa error dari endpoint.
mState
enum nl::Inet::IPEndPointBasis::@8
Status dinamis dasar endpoint yang mendasari.

Atribut yang dilindungi

mBoundIntfId
InterfaceId

Fungsi publik

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Bergabung dengan grup multicast IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Keluar dari grup multicast IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Menetapkan apakah traffic multicast IP harus di-loop back.

Fungsi yang dilindungi

Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
void
HandlePendingIO(uint16_t aPort)
void
Init(InetLayer *aInetLayer)
void
PrepareIO(void)
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)

Fungsi statis publik

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Fungsi statis yang dilindungi

GetPacketInfo(Weave::System::PacketBuffer *buf)
Mendapatkan informasi pengalamatan tujuan dan sumber lapisan IP LwIP.

Jenis publik

@8

 @8

Status dinamis dasar endpoint yang mendasari.

Objek diinisialisasi dalam status "siap", dilanjutkan ke status "terikat" setelah mengikat ke alamat antarmuka lokal, lalu dilanjutkan ke status "mendengarkan" bila objek memiliki kelanjutan yang terdaftar untuk menangani peristiwa untuk penerimaan pesan ICMP.

Catatan:Enumerasi status kBasisState_Closed dipetakan ke kState_Ready untuk alasan kompatibilitas biner historis. kState_Closed yang ada ada untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "yang sebelumnya dibuka sekarang ditutup" yang ada sebelumnya dalam status kState_Ready dan kState_Closed.

Properti
kState_Bound

Endpoint terikat, tetapi tidak merespons.

kState_Closed

Endpoint ditutup, siap dirilis.

kState_Listening

Endpoint menerima datagram.

kState_Ready

Endpoint diinisialisasi, tetapi tidak terbuka.

@9

 @9

Mengirimkan tanda opsi untuk metode SendMsg.

Properti
kSendFlag_RetainBuffer

Jangan mengantrekan pesan secara langsung yang bersifat destruktif.

Mengantrekan salinan.

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

Jenis fungsi penanganan peristiwa penerimaan teks pesan.

Sediakan fungsi jenis ini kepada anggota delegasi OnMessageReceived untuk memproses peristiwa penerimaan teks pesan di endPoint dengan msg sebagai teks pesan yang diterima dari pengirim di senderAddr.

Detail
Parameter
[in] endPoint
Endpoint yang terkait dengan peristiwa.
[in] msg
Teks pesan diterima.
[in] senderAddr
Alamat IP pengirim.

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

Jenis fungsi penanganan peristiwa error penerimaan.

Berikan fungsi jenis ini kepada anggota delegasi OnReceiveError untuk memproses peristiwa error penerimaan di endPoint. Argumen err memberikan detail spesifik tentang jenis error.

Detail
Parameter
[in] endPoint
Endpoint yang terkait dengan peristiwa.
[in] err
Alasan error.

Atribut publik

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Delegasi fungsi penanganan peristiwa penerimaan pesan endpoint.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

Endpoint menerima delegasi fungsi penanganan peristiwa error dari endpoint.

mState

enum nl::Inet::IPEndPointBasis::@8 mState

Status dinamis dasar endpoint yang mendasari.

Objek diinisialisasi dalam status "siap", dilanjutkan ke status "terikat" setelah mengikat ke alamat antarmuka lokal, lalu dilanjutkan ke status "mendengarkan" bila objek memiliki kelanjutan yang terdaftar untuk menangani peristiwa untuk penerimaan pesan ICMP.

Catatan:Enumerasi status kBasisState_Closed dipetakan ke kState_Ready untuk alasan kompatibilitas biner historis. kState_Closed yang ada ada untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "yang sebelumnya dibuka sekarang ditutup" yang ada sebelumnya dalam status kState_Ready dan kState_Closed.

Atribut yang dilindungi

mBoundIntfId

InterfaceId mBoundIntfId

Fungsi publik

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Bergabung dengan grup multicast IP.

Gabungkan endpoint ke grup multicast yang disediakan pada antarmuka yang ditentukan.

Detail
Parameter
[in] aInterfaceId
indikator antarmuka jaringan untuk ditambahkan ke grup multicast
[in] aAddress
grup {i>multicast <i}untuk menambahkan antarmuka ke
Nilai Pengembalian
INET_NO_ERROR
berhasil: grup multicast dihapus
INET_ERROR_UNKNOWN_INTERFACE
antarmuka jaringan tidak dikenal, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress bukan kIPAddressType_IPv4 atau kIPAddressType_IPv6 atau bukan multicast
other
error sistem atau platform lain

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Keluar dari grup multicast IP.

Menghapus endpoint dari grup multicast yang disediakan pada antarmuka yang ditentukan.

Detail
Parameter
[in] aInterfaceId
indikator antarmuka jaringan yang akan dihapus dari grup multicast
[in] aAddress
grup {i>multicast <i}untuk menghapus antarmuka dari
Nilai Pengembalian
INET_NO_ERROR
berhasil: grup multicast dihapus
INET_ERROR_UNKNOWN_INTERFACE
antarmuka jaringan tidak dikenal, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress bukan kIPAddressType_IPv4 atau kIPAddressType_IPv6 atau bukan multicast
other
error sistem atau platform lain

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Menetapkan apakah traffic multicast IP harus di-loop back.

Tetapkan apakah traffic multicast IP harus di-loop kembali ke endpoint ini atau tidak.

Detail
Parameter
[in] aIPVersion
[in] aLoop
Nilai Pengembalian
INET_NO_ERROR
berhasil: kumpulan perilaku loopback multicast
other
error sistem atau platform lain

Fungsi yang dilindungi

Ikat

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

BindInterface

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

HandleDataReceived

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

Inisiasi

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

Fungsi statis publik

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Fungsi statis yang dilindungi

GetPacketInfo

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

Mendapatkan informasi pengalamatan tujuan dan sumber lapisan IP LwIP.

Saat menggunakan LwIP, informasi paket akan 'tersembunyi' di ruang yang dicadangkan sebelum data dimulai di buffer paket. Hal ini diperlukan karena peristiwa lapisan sistem hanya memiliki dua argumen, yang dalam hal ini digunakan untuk menyampaikan pointer ke titik akhir dan pointer ke buffer.

Detail
Parameter
[in] aBuffer
{i>buffer<i} paket yang berisi pesan IP
Hasil
pointer ke informasi alamat saat berhasil; jika tidak, NULL jika tidak ada cukup ruang dalam paket untuk informasi alamat.

Dalam kebanyakan kasus, trik menyimpan informasi sebelum data ini berfungsi karena buffer pertama dalam pesan IP LwIP berisi ruang yang digunakan untuk header Ethernet/IP/UDP. Namun, mengingat ukuran struktur IPPacketInfo saat ini (40 byte), ada kemungkinan tidak ada cukup ruang untuk menyimpan struktur beserta payload dalam satu buffer paket. Dalam praktiknya, hal ini hanya terjadi untuk paket IPv4 yang sangat besar yang tiba tanpa {i>header<i} Eternet.