nl::Inet::RawEndPoint

#include <src/inet/RawEndPoint.h>

Bu sınıfın nesneleri, ham IP ağ uç noktalarını temsil eder.

Özet

Nest Inet Katmanı, sistem uygun şekilde yapılandırıldığından IP ağı uç noktalarıyla (Linux ve BSD tabanlı sistemlerde SOCK_RAW yuvaları) veya LwIP ham protokol kontrol bloklarıyla etkileşim yöntemlerini içerir.

Devralma

Devralındığı kaynak: nl::Inet::IPEndPointBasis

Herkese açık özellikler

IPProto
IPProtocol
İnternet Denetim Mesaj Protokolü (ICMP) sürümü
IPVer
IPVersion
İnternet protokolünün sürümü.

Herkese açık işlevler

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Uç noktayı bir arayüz IP adresine bağlayın.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Ham uç noktayı, belirtilen arayüz dizininde bir IPv6 bağlantı yerel kapsam adresine bağlayın.
BindInterface(IPAddressType addrType, InterfaceId intf)
Uç noktayı bir ağ arayüzüne bağlayın.
Close(void)
void
Uç noktayı kapatın.
Free(void)
void
Uç noktayı kapatın ve belleğini geri dönüştürün.
GetBoundInterface(void)
InterfaceId
Bu uç noktaya bağlı arayüzü alın.
Listen(void)
Uç noktayı ICMP mesajları alacak şekilde hazırlayın.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Belirtilen hedefe bir ICMP mesajı gönderin.
SendTo(IPAddress addr, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) ile eş anlamlı.
SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Belirtilen hedef adresine bir ICMP mesajı gönderin.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Ağ yığınındaki ICMP6 filtre parametrelerini ayarlayın.

Herkese açık özellikler

IPProto

IPProtocol IPProto

İnternet Denetim Mesaj Protokolü (ICMP) sürümü

Bu alan, değişebilir bir sınıf değişkeni olsa da sınıfın değiştirilemez bir öğesidir.

IPVer (IPVer)

IPVersion IPVer

İnternet protokolünün sürümü.

Bu alan, değişebilir bir sınıf değişkeni olsa da sınıfın değiştirilemez bir öğesidir.

Herkese açık işlevler

Bağla

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

Uç noktayı bir arayüz IP adresine bağlayın.

Uç noktayı belirtilen ağ arayüzü IP adresine bağlar.

Ayrıntılar
Parametreler
[in] addrType
IP adresinin protokol sürümü
[in] addr
IP adresi (arayüz adresi olmalıdır)
[in] intfId
isteğe bağlı bir ağ arayüzü göstergesi
Değerleri Döndür
INET_NO_ERROR
başarılı: uç nokta adrese bağlı
INET_ERROR_INCORRECT_STATE
uç nokta daha önce bağlandı
INET_NO_MEMORY
uç nokta için yetersiz bellek
INET_ERROR_UNKNOWN_INTERFACE
Bazı platformlarda isteğe bağlı olarak belirtilen arayüz yoktur.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType, IPVer ile eşleşmiyor.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType, kIPAddressType_Any değerine sahip veya addr türü, addrType değerine eşit değil.
other
başka bir sistem veya platform hatası

LwIP'de bu yöntem, halihazırda edinilmiş LwIP yığın kilidiyle çağrılmamalıdır.

BindIPv6LinkLocal

INET_ERROR BindIPv6LinkLocal(
  InterfaceId intf,
  IPAddress addr
)

Ham uç noktayı, belirtilen arayüz dizininde bir IPv6 bağlantı yerel kapsam adresine bağlayın.

Ayrıca, bağlantı üzerindeki hedeflere ve bağlantıdan paket aktarımı için uygun olan çeşitli IPv6 yuva seçenekleri ayarlar.

Uç noktayı intf ile belirtilen ağ arayüzündeki addr IPv6 bağlantı yerel adresine bağlar.

Ayrıntılar
Parametreler
[in] intf
Adresin kapsamını tanımlamak için arayüz kimliği.
[in] addr
IPv6 link-yerel kapsamı IPAddress nesnesi.
Parametreler
[in] intf
ağ arayüzünün göstergesi
[in] addr
IP adresi (arayüz adresi olmalıdır)
Değerleri Döndür
INET_NO_ERROR
başarılı: uç nokta adrese bağlı
INET_ERROR_INCORRECT_STATE
uç nokta daha önce bağlandı
INET_NO_MEMORY
uç nokta için yetersiz bellek
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType, IPVer ile eşleşmiyor.
INET_ERROR_WRONG_ADDRESS_TYPE
addr, IPv6 yerel bağlantı adresi değil veya intf INET_NULL_INTERFACEID.
other
başka bir sistem veya platform hatası
İadeler
Başarıda INET_NO_ERROR veya hatada eşlenmiş bir OS hatası. Geçersiz bir parametre listesi INET_ERROR_WRONG_ADDRESS_TYPE ile sonuçlanabilir. Ham uç nokta zaten bağlıysa veya dinliyorsa INET_ERROR_INCORRECT_STATE değerini döndürür. Uç noktayı bir arayüz IPv6 bağlantı yerel adresine bağlayın.

LwIP'de bu yöntem, halihazırda edinilmiş LwIP yığın kilidiyle çağrılmamalıdır.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Uç noktayı bir ağ arayüzüne bağlayın.

Uç noktayı belirtilen ağ arayüzü IP adresine bağlar.

Ayrıntılar
Parametreler
[in] addrType
IP adresinin protokol sürümü.
[in] intf
ağ arayüzünün göstergesi.
Değerleri Döndür
INET_NO_ERROR
başarılı: uç nokta adrese bağlı
INET_NO_MEMORY
uç nokta için yetersiz bellek
INET_ERROR_NOT_IMPLEMENTED
sistem uygulaması tamamlanmadı.
INET_ERROR_UNKNOWN_INTERFACE
Bazı platformlarda arayüz yoktur.
other
başka bir sistem veya platform hatası

LwIP'de bu yöntem, halihazırda edinilmiş LwIP yığın kilidiyle çağrılmamalıdır.

Kapat

void Close(
  void
)

Uç noktayı kapatın.

mState != kState_Closed ise uç noktayı kapatarak iletişim etkinlikleri için uygun uç nokta grubundan kaldırır.

LwIP sistemlerinde bu yöntem, halihazırda edinilmiş LwIP yığın kilidiyle çağrılmamalıdır.

Ücretsiz

void Free(
  void
)

Uç noktayı kapatın ve belleğini geri dönüştürün.

Close yöntemini çağırır, ardından nesneyi bellek havuzuna döndürmek için InetLayerBasis::Release yöntemini çağırır.

LwIP sistemlerinde bu yöntem, halihazırda edinilmiş LwIP yığın kilidiyle çağrılmamalıdır.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Bu uç noktaya bağlı arayüzü alın.

Ayrıntılar
İadeler
Arayüz kimliği Bağlı arayüz kimliği.

Dinle

INET_ERROR Listen(
  void
)

Uç noktayı ICMP mesajları alacak şekilde hazırlayın.

mState zaten kState_Listening ise herhangi bir işlem yapılmaz. Aksi takdirde mState, kState_Listening olarak ayarlanır ve uç nokta, platformun anlamlarına göre ICMPv6 mesajlarını almaya hazırlanır.

Ayrıntılar
Değerleri Döndür
INET_NO_ERROR
her zaman döndürülür.

LwIP'de bu yöntem, halihazırda edinilmiş LwIP yığın kilidiyle çağrılmamalıdır

SendMsg

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

Belirtilen hedefe bir ICMP mesajı gönderin.

 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.

Ayrıntılar
Parametreler
[in] pktInfo
mesajın hedef bilgilerini
[in] msg
UDP mesajını içeren paket arabelleği
[in] sendFlags
isteğe bağlı iletim seçeneği bayrakları
Değerleri Döndür
INET_NO_ERROR
başarılı: msg iletim için sıraya alındı.
INET_ERROR_NOT_SUPPORTED
sistem istenen işlemi desteklemiyor.
INET_ERROR_WRONG_ADDRESS_TYPE
hedef adresi ve bağlı arayüz adresinin protokol sürümleri veya adres türü eşleşmiyor.
INET_ERROR_MESSAGE_TOO_LONG
msg, ICMP mesajının tamamını içermiyor.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Bazı platformlarda msg ürününün yalnızca kısaltılmış bir kısmı aktarım için sıraya alınıyordu.
other
başka bir sistem veya platform hatası

SendTo

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

SendTo(addr, INET_NULL_INTERFACEID, msg, sendFlags) ile eş anlamlı.

SendTo

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

Belirtilen hedef adresine bir ICMP mesajı gönderin.

 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.

Ayrıntılar
Parametreler
[in] addr
hedef IP adresi
[in] intfId
isteğe bağlı bir ağ arayüzü göstergesi
[in] msg
UDP mesajını içeren paket arabelleği
[in] sendFlags
isteğe bağlı iletim seçeneği bayrakları
Değerleri Döndür
INET_NO_ERROR
başarılı: msg iletim için sıraya alındı.
INET_ERROR_NOT_SUPPORTED
sistem istenen işlemi desteklemiyor.
INET_ERROR_WRONG_ADDRESS_TYPE
hedef adresi ve bağlı arayüz adresinin protokol sürümleri veya adres türü eşleşmiyor.
INET_ERROR_MESSAGE_TOO_LONG
msg, ICMP mesajının tamamını içermiyor.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Bazı platformlarda msg ürününün yalnızca kısaltılmış bir kısmı aktarım için sıraya alınıyordu.
other
başka bir sistem veya platform hatası

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Ağ yığınındaki ICMP6 filtre parametrelerini ayarlayın.

aICMPTypes içindeki kodlar için ICMPv6 filtreleme parametrelerini, sistem ağ iletişimi yığınındaki temel uç noktaya uygulayın.

Ayrıntılar
Parametreler
[in] numICMPTypes
dizinin uzunluğu: aICMPTypes
[in] aICMPTypes
kod grubunu görmek için gelir.
Değerleri Döndür
INET_NO_ERROR
başarılı: filtre parametreleri ayarlandı
INET_ERROR_NOT_IMPLEMENTED
sistemin uygulamaması
INET_ERROR_WRONG_ADDRESS_TYPE
uç nokta IPv6 türü değil
INET_ERROR_WRONG_PROTOCOL_TYPE
uç nokta ICMP6 türü değil
other
başka bir sistem veya platform hatası