nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Objek class ini merepresentasikan endpoint protokol IP yang tidak dapat dibuat instance.

Ringkasan

Inheritance

Mewarisi dari: nl::Inet::EndPointBasis
Subclass yang Dikenal Langsung:
  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 mendasarinya.
@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
Delegasi fungsi penanganan peristiwa error penerimaan endpoint.
mState
enum nl::Inet::IPEndPointBasis::@8
Status dinamis dasar endpoint yang mendasarinya.

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 kembali.

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 sumber dan tujuan lapisan IP LwIP.

Jenis publik

@8

 @8

Status dinamis dasar endpoint yang mendasarinya.

Objek diinisialisasi dalam status "siap" status, lanjutkan ke "terikat" status setelah mengikat ke alamat antarmuka lokal, kemudian lanjutkan ke "proses" ketika mereka memiliki kelanjutan yang terdaftar untuk menangani peristiwa untuk menerima pesan ICMP.

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

Properti
kState_Bound

Endpoint terikat, tetapi tidak memproses.

kState_Closed

Endpoint ditutup, siap untuk dirilis.

kState_Listening

Endpoint yang menerima datagram.

kState_Ready

Endpoint diinisialisasi, tetapi tidak terbuka.

@9

 @9

Mengirimkan tanda opsi untuk metode SendMsg.

Properti
kSendFlag_RetainBuffer

Jangan mengantrekan pesan secara destruktif secara langsung.

Antrean salinan.

OnMessageReceivedFunct

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

Jenis fungsi penanganan peristiwa penerimaan teks pesan.

Berikan fungsi jenis ini kepada anggota delegasi OnMessageReceived untuk memproses peristiwa penerimaan teks pesan di endPoint dengan msg adalah 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

Delegasi fungsi penanganan peristiwa error penerimaan endpoint.

mState

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

Status dinamis dasar endpoint yang mendasarinya.

Objek diinisialisasi dalam status "siap" status, lanjutkan ke "terikat" status setelah mengikat ke alamat antarmuka lokal, kemudian lanjutkan ke "proses" ketika mereka memiliki kelanjutan yang terdaftar untuk menangani peristiwa untuk menerima pesan ICMP.

Catatan: Enumerasi status kBasisState_Closed dipetakan ke kState_Ready untuk alasan kompatibilitas biner historis. kState_Closed yang ada dibuat untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "sebelumnya dibuka sekarang tutup" yang sudah ada sebelumnya di 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.

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

Detail
Parameter
[in] aInterfaceId
indikator antarmuka jaringan untuk ditambahkan ke grup {i>multicast<i}
[in] aAddress
grup {i>multicast <i}untuk menambahkan antarmuka ke
Nilai yang Ditampilkan
INET_NO_ERROR
sukses: 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 untuk dilepas dari grup {i>multicast<i}
[in] aAddress
grup {i>multicast <i}untuk menghapus antarmuka dari
Nilai yang Ditampilkan
INET_NO_ERROR
sukses: 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 kembali.

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

Detail
Parameter
[in] aIPVersion
[in] aLoop
Nilai yang Ditampilkan
INET_NO_ERROR
sukses: 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
)

Init

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 sumber dan tujuan lapisan IP LwIP.

Saat menggunakan LwIP, informasi tentang paket itu 'tersembunyi' di ruang yang disediakan sebelum dimulainya data dalam {i>buffer<i} paket. 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
petunjuk ke informasi alamat tentang keberhasilan; jika tidak, NULL jika tidak ada cukup ruang pada paket untuk informasi alamat.

Dalam kebanyakan kasus, trik penyimpanan informasi sebelum data 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 tersedia cukup ruang untuk menyimpan struktur beserta payload dalam satu buffer paket. Dalam praktiknya, ini hanya terjadi untuk paket IPv4 yang sangat besar yang tiba tanpa {i>header <i}Eternet.