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ı, IP ağ uç noktalarıyla (Linux ve BSD ile türetilmiş sistemlerde SOCK_RAW yuvaları) veya LwIP ham protokol kontrol bloklarıyla (sistem yapılandırıldığı için) etkileşime geçme yöntemlerini içerir.

Devralma

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

Herkese açık özellikler

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

Kamu işlevleri

Bind(IPAddressType addrType, IPAddress addr, InterfaceId intfId)
Uç noktayı arayüz IP adresine bağlayın.
BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
Ham uç noktayı, belirtilen arayüz dizininde bir IPv6 bağlantısı 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)
Uç noktayı ICMP mesajlarını alacak şekilde hazırlayın.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Belirtilen hedefe 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 ICMP mesajı gönderin.
SetICMPFilter(uint8_t numICMPTypes, const uint8_t *aICMPTypes)
Ağ yığınında ICMP6 filtre parametrelerini ayarlayın.

Herkese açık özellikler

IPProto

IPProtocol IPProto

İnternet Kontrol 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şmediği bir değişkendir ve değiştirilemez.

IPV

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şmediği bir değişkendir ve değiştirilemez.

Kamu işlevleri

Bağla

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

Uç noktayı 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ı ağ arayüzü göstergesi
Döndürülen Değerler
INET_NO_ERROR
success: şu adrese bağlı uç nokta:
INET_ERROR_INCORRECT_STATE
uç nokta daha önce bağlanmış
INET_NO_MEMORY
uç nokta için yetersiz bellek
INET_ERROR_UNKNOWN_INTERFACE
Bazı platformlarda isteğe bağlı olarak belirtilen arayüz bulunmaz.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType, IPVer ile eşleşmiyor.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType, kIPAddressType_Any değerine eşit 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 alınmış 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ısı yerel kapsam adresine bağlayın.

Ayrıca, bağlantıdaki hedeflere paket aktarmak için uygun olan çeşitli IPv6 yuva seçeneklerini de ayarlar.

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

Ayrıntılar
Parametreler
[in] intf
Adresin kapsamını tanımlayan InterfaceId.
[in] addr
IPv6 bağlantısı yerel kapsamı IPAddress nesnesi.
Parametreler
[in] intf
ağ arayüzü göstergesi
[in] addr
IP adresi (arayüz adresi olmalıdır)
Döndürülen Değerler
INET_NO_ERROR
success: şu adrese bağlı uç nokta:
INET_ERROR_INCORRECT_STATE
uç nokta daha önce bağlanmış
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 bir IPv6 yerel bağlantı adresi değil veya intf değeri INET_NULL_INTERFACEID.
other
başka bir sistem veya platform hatası
İadeler
Hata durumunda INET_NO_ERROR veya 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 dinleme yapıyorsa INET_ERROR_INCORRECT_STATE değerini döndürür. Uç noktayı, arayüzdeki bir IPv6 bağlantı yerel adresine bağlayın.

LwIP'de bu yöntem, halihazırda alınmış 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.
Döndürülen Değerler
INET_NO_ERROR
success: şu adrese bağlı uç nokta:
INET_NO_MEMORY
uç nokta için yetersiz bellek
INET_ERROR_NOT_IMPLEMENTED
sistem uygulaması tamamlanmamıştır.
INET_ERROR_UNKNOWN_INTERFACE
Bazı platformlarda arayüz yoktur.
other
başka bir sistem veya platform hatası

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

Kapat

void Close(
  void
)

Uç noktayı kapatın.

mState != kState_Closed ise uç noktayı kapatır ve bunu iletişim etkinliklerine 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ç noktadaki bağlı arayüzü alın.

Ayrıntılar
İadeler
InterfaceId Bağlanmış arayüz kimliği.

Dinle

INET_ERROR Listen(
  void
)

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

mState zaten kState_Listening ise herhangi bir işlem gerçekleştirilmez. Aksi takdirde mState, kState_Listening olarak ayarlanır ve uç nokta, platformun anlamına göre ICMPv6 mesajlarını almaya hazır olur.

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

LwIP'de bu yöntem, önceden alınmış 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 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 bilgisi
[in] msg
UDP mesajını içeren paket arabelleği
[in] sendFlags
isteğe bağlı aktarım 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 ve bağlı arayüz adresi, eşleşen protokol sürümlerine veya adres türüne sahip değil.
INET_ERROR_MESSAGE_TOO_LONG
msg, ICMP mesajının tamamını içermez.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Bazı platformlarda msg dersinin yalnızca kısaltılmış bir kısmı iletim için sıraya alındı.
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 adrese 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ı aktarım 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 ve bağlı arayüz adresi, eşleşen protokol sürümlerine veya adres türüne sahip değil.
INET_ERROR_MESSAGE_TOO_LONG
msg, ICMP mesajının tamamını içermez.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Bazı platformlarda msg dersinin yalnızca kısaltılmış bir kısmı iletim için sıraya alındı.
other
başka bir sistem veya platform hatası

SetICMPFilter

INET_ERROR SetICMPFilter(
  uint8_t numICMPTypes,
  const uint8_t *aICMPTypes
)

Ağ yığınında 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
dizinin uzunluğu: aICMPTypes
[in] aICMPTypes
ICMPv6 tür kodları grubunu bulun.
Döndürülen Değerler
INET_NO_ERROR
başarı: filtre parametreleri ayarlandı
INET_ERROR_NOT_IMPLEMENTED
sistem uygulamaz
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ı