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ığı için IP ağ uç noktaları (Linux ve BSD ile türetilmiş sistemlerdeki SOCK_RAW yuvaları) veya LwIP ham protokol kontrol bloklarıyla etkileşim yöntemlerini içerir.

Devralma

Şu kaynaktan devralınır: nl::Inet::IPEndPointBasis

Herkese açık özellikler

IPProto
IPProtocol
İnternet Denetim Mesajı Protokolü (ICMP) sürümü
IPVer
IPVersion
İnternet protokolü 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ç noktadaki bağlı arayüzü alın.
Listen(void)
ICMP mesajlarını almak için uç noktayı 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 adrese 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, yoksayılabilir bir sınıf değişkeni olsa da, değişmediği bir sınıf değişkenidir.

IPVer

IPVersion IPVer

İnternet protokolü sürümü.

Bu alan, yoksayılabilir bir sınıf değişkeni olsa da, değişmediği bir sınıf değişkenidir.

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 (bir arayüz adresi olmalıdır)
[in] intfId
isteğe bağlı ağ arayüzü göstergesi
Döndürülen Değerler
INET_NO_ERROR
başarılı: adrese bağlı uç nokta
INET_ERROR_INCORRECT_STATE
uç nokta daha önce bağlandı
INET_NO_MEMORY
uç nokta için yeterli bellek yok
INET_ERROR_UNKNOWN_INTERFACE
Bazı platformlarda, isteğe bağlı olarak belirtilen arayüz mevcut değildir.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType, IPVer ile eşleşmiyor.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType kIPAddressType_Any veya addr türü addrType değerine eşit değil.
other
başka bir sistem veya platform hatası

LwIP'de bu yöntem, LwIP yığın kilidi önceden alınmışsa çağrılmamalıdır.

ConnectIPv6LinkLocal

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, paketleri bağlantıdaki hedeflere ve bu hedeflerden aktarmak için uygun olan çeşitli IPv6 yuva seçeneklerini de belirler.

Uç noktayı, intf tarafından belirtilen ağ arayüzünde IPv6 bağlantı yerel adresine addr bağlar.

Ayrıntılar
Parametreler
[in] intf
Adresin kapsamını tanımlamak için bir arayüz kimliği.
[in] addr
Bir IPv6 bağlantı yerel kapsamı IPAddress nesnesi.
Parametreler
[in] intf
ağ arayüzü göstergesi
[in] addr
IP adresi (bir arayüz adresi olmalıdır)
Döndürülen Değerler
INET_NO_ERROR
başarılı: adrese bağlı uç nokta
INET_ERROR_INCORRECT_STATE
uç nokta daha önce bağlandı
INET_NO_MEMORY
uç nokta için yeterli bellek yok
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType, IPVer ile eşleşmiyor.
INET_ERROR_WRONG_ADDRESS_TYPE
addr, IPv6 bağlantı yerel adresi veya intf INET_NULL_INTERFACEID.
other
başka bir sistem veya platform hatası
İadeler
Başarıyla ilgili INET_NO_ERROR veya hata nedeniyle 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 döndürür. Uç noktayı bir arayüz IPv6 bağlantı yerel adresine bağlayın.

LwIP'de bu yöntem, LwIP yığın kilidi önceden alınmışsa çağrılmamalıdır.

Bağlama Bağlantısı

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ü göstergesi.
Döndürülen Değerler
INET_NO_ERROR
başarılı: adrese bağlı uç nokta
INET_NO_MEMORY
uç nokta için yeterli bellek yok
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, LwIP yığın kilidi önceden alınmışsa çağrılmamalıdır.

Kapat

void Close(
  void
)

Uç noktayı kapatın.

mState != kState_Closed ise uç noktayı kapatır ve iletişim etkinlikleri için uygun olan uç noktalar grubundan kaldırır.

LwIP sistemlerinde, bu yöntem daha önce LwIP yığın kilidiyle kazanılmış olmamalı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 daha önce LwIP yığın kilidiyle kazanılmış olmamalıdır.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

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

Ayrıntılar
İadeler
UIId Sınır arayüz kimliği.

Dinle

INET_ERROR Listen(
  void
)

ICMP mesajlarını almak için uç noktayı hazırlayın.

mState zaten kState_Listening ise herhangi bir işlem yapılmazsa mState kState_Listening olarak ayarlanır ve uç nokta, platformun semantiğine göre ICMPv6 mesajlarını almaya hazırdır.

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

LwIP'de bu yöntem, daha önce alınmış olan LwIP yığın kilidiyle çağrılmamalıdır

SMS Gönder

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
iletinin hedef bilgileri
[in] msg
UDP mesajını içeren paket arabelleği
[in] sendFlags
isteğe bağlı iletim seçeneği işaretleri
Döndürülen Değerler
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 adres ile bağlı arayüz adresinin eşleşen protokol sürümleri veya adres türü yok.
INET_ERROR_MESSAGE_TOO_LONG
msg, ICMP mesajının tamamını içermez.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Bazı platformlarda aktarılmak üzere msg ürününün yalnızca kesilmiş bir kısmı sıraya alındı.
other
başka bir sistem veya platform hatası

Alıcı

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

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

Alıcı

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

Belirtilen hedef adrese 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ı 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 işaretleri
Döndürülen Değerler
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 adres ile bağlı arayüz adresinin eşleşen protokol sürümleri veya adres türü yok.
INET_ERROR_MESSAGE_TOO_LONG
msg, ICMP mesajının tamamını içermez.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Bazı platformlarda aktarılmak üzere msg ürününün yalnızca kesilmiş bir kısmı sıraya alındı.
other
başka bir sistem veya platform hatası

SetICMPFiltresi

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ğ yığınındaki temel uç noktaya uygulayın.

Ayrıntılar
Parametreler
[in] numICMPTypes
aICMPTypes dizisinin uzunluğu
[in] aICMPTypes
filtrelenecek ICMPv6 tür kodu grubu.
Döndürülen Değerler
INET_NO_ERROR
başarılı: filtre parametreleri ayarlandı
INET_ERROR_NOT_IMPLEMENTED
ancak sistem
INET_ERROR_WRONG_ADDRESS_TYPE
Uç nokta IPv6 türü değil
INET_ERROR_WRONG_PROTOCOL_TYPE
ICMP6 türü olmayan uç nokta
other
başka bir sistem veya platform hatası