nl::Inet

Tóm tắt

Liệt kê

@7{
  kInetEvent_TCPConnectComplete = _INET_CONFIG_EVENT(0),
  kInetEvent_TCPConnectionReceived = _INET_CONFIG_EVENT(1),
  kInetEvent_TCPDataReceived = _INET_CONFIG_EVENT(2),
  kInetEvent_TCPDataSent = _INET_CONFIG_EVENT(3),
  kInetEvent_TCPError = _INET_CONFIG_EVENT(4),
  kInetEvent_UDPDataReceived = _INET_CONFIG_EVENT(5),
  kInetEvent_DNSResolveComplete = _INET_CONFIG_EVENT(6),
  kInetEvent_TunDataReceived = _INET_CONFIG_EVENT(7),
  kInetEvent_RawDataReceived = _INET_CONFIG_EVENT(8)
}
enum
Định nghĩa các loại sự kiện của lớp Inet.
DNSOptions{
  kDNSOption_AddrFamily_Mask = 0x07,
  kDNSOption_Flags_Mask = 0xF8,
  kDNSOption_AddrFamily_Any = 0x00,
  kDNSOption_AddrFamily_IPv4Only = 0x01,
  kDNSOption_AddrFamily_IPv4Preferred = 0x02,
  kDNSOption_AddrFamily_IPv6Only = 0x03,
  kDNSOption_AddrFamily_IPv6Preferred = 0x04,
  kDNSOption_ValidFlags = 0
}
enum
Các tuỳ chọn kiểm soát cách thực hiện quá trình phân giải địa chỉ IP.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
Họ địa chỉ giao thức Internet.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
Số lượng của một số giao thức trong nhóm IP.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
Giá trị nhận dạng nhóm truyền đa hướng của giao thức Internet.
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum
Phiên bản của giao thức IP đang được sử dụng.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum
Cờ đa hướng của giao thức Internet v6.
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
enum
Phạm vi địa chỉ đa hướng của giao thức Internet.

Typedef

InterfaceId typedef
struct netif *
Chỉ báo cho giao diện mạng của hệ thống.

Biến

sIOCTLSocket = -1
int

Hàm

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
Đóng ổ cắm chung do GetIOCTLSocket tạo.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
Với lỗi Lớp Inet, hàm sẽ trả về một chuỗi C kết thúc bằng NULL (Rỗng) mà con người có thể đọc được, trong đó mô tả lỗi.
GetIOCTLSocket(void)
int
Trả về một ổ cắm chung dùng cho mục đích chung, hữu ích để gọi một số IOCL mạng nhất định.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
Lấy tên của giao diện mạng.
INET_IsInetEvent(Weave::System::EventType aType)
bool
Kiểm tra để xác minh xem System::EventType có phải là loại sự kiện lớp Inet hợp lệ hay không.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
Tìm kiếm trong danh sách giao diện mạng cho tên được chỉ định.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
Tính độ dài tiền tố từ mặt nạ mạng có độ dài biến đổi.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
Phân tích cú pháp một chuỗi mà con người đọc được chứa địa chỉ máy chủ lưu trữ hoặc IP và số cổng không bắt buộc (phân tách bằng dấu ":"), hỗ trợ các định dạng sau:
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
Phân tích cú pháp chuỗi mà con người có thể đọc được chứa địa chỉ máy chủ lưu trữ hoặc IP, số cổng không bắt buộc (phân tách bằng dấu ":") và tên giao diện không bắt buộc (phân tách bằng dấu ":"), hỗ trợ các định dạng sau:
RegisterInetLayerErrorFormatter(void)
void
Đăng ký trình định dạng lỗi văn bản cho các lỗi Lớp Inet.
SocketsIPv4JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsIPv6JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId, const IPAddress & aAddress, int aCommand)
SocketsSetMulticastLoopback(int aSocket, bool aLoopback, int aProtocol, int aOption)
SocketsSetMulticastLoopback(int aSocket, IPVersion aIPVersion, bool aLoopback)

Lớp

nl::Inet::AsyncDNSResolverSockets

Đây là một lớp nội bộ cho InetLayer cung cấp API trợ giúp để phân giải Hệ thống tên miền (DNS) không đồng bộ trong InetLayer.

nl::Inet::DNSResolver

Đây là một lớp nội bộ của InetLayer cung cấp bản tóm tắt của hoạt động phân giải Hệ thống tên miền (DNS) trong InetLayer.

nl::Inet::EndPointBasis

Cơ sở của các lớp thiết bị đầu cuối truyền tải Internet.

nl::Inet::IPAddress

Địa chỉ giao thức Internet.

nl::Inet::IPEndPointBasis

Các đối tượng của lớp này đại diện cho các điểm cuối của giao thức IP không thể tạo thực thể.

nl::Inet::IPPacketInfo

Thông tin về kết nối/tin nhắn đến/đi.

nl::Inet::IPPrefix

Tiền tố địa chỉ giao thức Internet.

nl::Inet::InetLayer

Nhờ vậy, bạn có thể truy cập vào các dịch vụ Internet, trong đó có bộ tính giờ, hoạt động phân giải Hệ thống tên miền (DNS), truyền tải mạng TCP, truyền tải mạng UDP và truyền tải mạng thô, cho một luồng đơn.

nl::Inet::InetLayerBasis

Đây là lớp cơ sở của các đối tượng được tính tham chiếu do đối tượng InetLayer quản lý.

nl::Inet::InterfaceAddressIterator

Biến lặp cho danh sách địa chỉ IP giao diện mạng của hệ thống.

nl::Inet::InterfaceIterator

Biến lặp cho danh sách giao diện mạng của hệ thống.

nl::Inet::RawEndPoint

Các đối tượng của lớp này đại diện cho các điểm cuối mạng IP thô.

nl::Inet::SocketEvents

Biểu thị một tập hợp các sự kiện I/O được yêu cầu/đang chờ xử lý trên một ổ cắm.

nl::Inet::TCPEndPoint

Các đối tượng của lớp này đại diện cho các điểm cuối truyền tải TCP.

nl::Inet::TunEndPoint

Các đối tượng của lớp này đại diện cho giao diện đường hầm.

nl::Inet::UDPEndPoint

Các đối tượng của lớp này đại diện cho các điểm cuối truyền tải UDP.

Liên đoàn

nl::Inet::PeerSockAddr

Không gian tên

nl::Inet::Platform

Liệt kê

@7

 @7

Định nghĩa các loại sự kiện của lớp Inet.

Thuộc tính
kInetEvent_DNSResolveComplete

Sự kiện hoàn tất quá trình phân giải tên DNS.

kInetEvent_RawDataReceived

Sự kiện nhận dữ liệu qua điểm cuối thô InetLayer.

kInetEvent_TCPConnectComplete

Sự kiện để hoàn tất kết nối TCP.

kInetEvent_TCPConnectionReceived

Sự kiện để nhận kết nối TCP.

kInetEvent_TCPDataReceived

Sự kiện nhận dữ liệu qua kết nối TCP.

kInetEvent_TCPDataSent

Sự kiện truyền dữ liệu qua kết nối TCP.

kInetEvent_TCPError

Sự kiện cho một lỗi khi kết nối TCP.

kInetEvent_TunDataReceived

Sự kiện nhận dữ liệu qua đường hầm Weave.

kInetEvent_UDPDataReceived

Sự kiện nhận dữ liệu qua UDP.

DNSOptions

 DNSOptions

Các tuỳ chọn kiểm soát cách thực hiện quá trình phân giải địa chỉ IP.

Thuộc tính
kDNSOption_AddrFamily_Any

Trả về địa chỉ IPv4 và/hoặc IPv6 theo thứ tự do máy chủ định danh trả về.

kDNSOption_AddrFamily_IPv4Only

Chỉ trả về địa chỉ IPv4.

kDNSOption_AddrFamily_IPv4Preferred

Trả về địa chỉ IPv4 và/hoặc IPv6, trong đó địa chỉ IPv4 được liệt kê đầu tiên.

kDNSOption_AddrFamily_IPv6Only

Chỉ trả về địa chỉ IPv6.

kDNSOption_AddrFamily_IPv6Preferred

Trả về địa chỉ IPv4 và/hoặc IPv6, trong đó địa chỉ IPv6 được liệt kê đầu tiên.

kDNSOption_AddrFamily_Mask

Các bit trong một giá trị số nguyên DNSOptions đại diện cho nhóm địa chỉ mong muốn.

kDNSOption_Flags_Mask

Các bit trong một giá trị số nguyên DNSOptions dành riêng cho cờ.

kDNSOption_ValidFlags

Bộ tất cả cờ DNSOption hợp lệ.

IPAddressType

 IPAddressType

Họ địa chỉ giao thức Internet.

Phương thức IPAddress::Type() trả về các giá trị của loại IPAddressType. Các phần tử này cho biết nhóm địa chỉ đòi hỏi theo việc sử dụng địa chỉ.

Thuộc tính
kIPAddressType_Any

Địa chỉ Internet không xác định (độc lập với phiên bản giao thức)

kIPAddressType_IPv4

Giao thức Internet phiên bản 4.

kIPAddressType_IPv6

Giao thức Internet phiên bản 6.

kIPAddressType_Unknown

Không được sử dụng.

IPProtocol

 IPProtocol

Số lượng của một số giao thức trong nhóm IP.

Thuộc tính
kIPProtocol_ICMPv4

ICMPv4.

kIPProtocol_ICMPv6

ICMPv6.

IPV6MulticastGroup

 IPV6MulticastGroup

Giá trị nhận dạng nhóm truyền đa hướng của giao thức Internet.

Các giá trị của loại IPV6MulticastGroup được dùng để gọi phương thức IPAddress::MakeIPv6Multicast(). Chúng biểu thị các giá trị nhận dạng nhóm phân biệt do IETF đăng ký với IANA.

Thuộc tính
kIPV6MulticastGroup_AllRouters

RFC 4291.

IPVersion

 IPVersion

Phiên bản của giao thức IP đang được sử dụng.

Thuộc tính
kIPVersion_4

IPv4.

kIPVersion_6

IPv6.

IPv6MulticastFlag

 IPv6MulticastFlag

Cờ đa hướng của giao thức Internet v6.

Giá trị của loại IPv6MulticastFlag được dùng để gọi các phương thức IPAddress::MakeIPv6Multicast(). Chúng cho biết loại địa chỉ đa hướng IPv6 cần tạo. Các số này do IETF đăng ký với IANA.

Thuộc tính
kIPv6MulticastFlag_Prefix

Địa chỉ phát đa hướng là (1) dựa trên tiền tố mạng.

kIPv6MulticastFlag_Transient

Địa chỉ đa hướng là (1) tạm thời (nghĩa là được gán động) thay vì (0) phổ biến (nghĩa là do IANA chỉ định).

IPv6MulticastScope

 IPv6MulticastScope

Phạm vi địa chỉ đa hướng của giao thức Internet.

Các giá trị của loại IPv6MulticastScope được dùng để gọi phương thức IPAddress::MakeIPv6Multicast(). Các tham số này cho biết phạm vi có thể định tuyến của nhóm truyền đa hướng được chỉ định trong kết quả. Các số này do IETF đăng ký với IANA.

Thuộc tính
kIPv6MulticastScope_Admin

Phạm vi cục bộ.

kIPv6MulticastScope_Global

Phạm vi trên toàn cầu.

kIPv6MulticastScope_IPv4

Phạm vi vùng cục bộ ("IPv4").

kIPv6MulticastScope_Interface

Phạm vi giao diện cục bộ.

kIPv6MulticastScope_Link

Phạm vi cục bộ của đường liên kết.

kIPv6MulticastScope_Organization

Phạm vi tổ chức tại địa phương.

kIPv6MulticastScope_Site

Phạm vi cục bộ.

Typedef

InterfaceId

struct netif * InterfaceId

Chỉ báo cho giao diện mạng của hệ thống.

Khả năng có thể di chuyển phụ thuộc vào việc không bao giờ chứng kiến bí danh này. Trong tương lai, hệ thống có thể thay thế lớp này bằng một lớp mờ cụ thể.

Lưu ý: Cụm từ "giá trị nhận dạng giao diện" cũng thường đề cập đến 64 bit thấp hơn của địa chỉ IPv6 trong tất cả các tài liệu tiêu chuẩn IETF có liên quan, trong đó chữ viết tắt "IID" thường được sử dụng. Trong văn bản này, thuật ngữ "chỉ báo giao diện" tham chiếu đến các giá trị của loại bí danh này.

Biến

sIOCTLSocket

int sIOCTLSocket = -1

Hàm

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

Đóng ổ cắm chung do GetIOCTLSocket tạo.

Hàm này được cung cấp cho các trường hợp để ổ cắm Ioctal chung mở sẽ được ghi lại là một sự cố rò rỉ.

Lưu ý: Hàm này KHÔNG an toàn cho luồng đối với GetIOCTLSocket.

FormatInetLayerError

bool FormatInetLayerError(
  char *buf,
  uint16_t bufSize,
  int32_t err
)

Với lỗi Lớp Inet, hàm sẽ trả về một chuỗi C kết thúc bằng NULL (Rỗng) mà con người có thể đọc được, trong đó mô tả lỗi.

Thông tin chi tiết
Tham số
[in] buf
Vùng đệm mà chuỗi lỗi sẽ được đặt vào.
[in] bufSize
Kích thước của vùng đệm đã cung cấp tính bằng byte.
[in] err
Lỗi cần mô tả.
Trả về
true Nếu một chuỗi mô tả được ghi vào vùng đệm đã cung cấp.
Trả về
false Nếu lỗi đã cung cấp không phải là lỗi Lớp Inet.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

Trả về một ổ cắm chung dùng cho mục đích chung, hữu ích để gọi một số IOCL mạng nhất định.

Hàm này an toàn cho luồng trên tất cả nền tảng.

GetInterfaceName

NL_DLL_EXPORT INET_ERROR GetInterfaceName(
  InterfaceId intfId,
  char *nameBuf,
  size_t nameBufSize
)

Lấy tên của giao diện mạng.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf. The name of the unspecified network interface is the empty
string.

Thông tin chi tiết
Tham số
[in] intfId
giao diện mạng
[in] nameBuf
vùng bộ nhớ để ghi tên giao diện
[in] nameBufSize
kích thước của khu vực được biểu thị bằng nameBuf
Giá trị trả về
INET_NO_ERROR
kết quả thành công, tên giao diện được ghi
INET_ERROR_NO_MEMORY
tên quá lớn nên không thể viết vào bộ đệm
other
lỗi hệ thống hoặc nền tảng khác

INET_IsInetEvent

bool INET_IsInetEvent(
  Weave::System::EventType aType
)

Kiểm tra để xác minh xem System::EventType có phải là loại sự kiện lớp Inet hợp lệ hay không.

Thông tin chi tiết
Tham số
[in] aType
Loại sự kiện Lớp hệ thống Weave.
Trả về
true nếu thuộc phạm vi được liệt kê; ngược lại sẽ là false.

InterfaceNameToId

NL_DLL_EXPORT INET_ERROR InterfaceNameToId(
  const char *intfName,
  InterfaceId & intfId
)

Tìm kiếm trong danh sách giao diện mạng cho tên được chỉ định.

On LwIP, this function must be called with the LwIP stack lock acquired.

The \c intfId parameter is not updated unless the value returned is
\c INET_NO_ERROR. It should be initialized with \c INET_NULL_INTERFACEID
before calling this function.

Thông tin chi tiết
Tham số
[in] intfName
tên của giao diện mạng để tìm
[out] intfId
chỉ báo về giao diện mạng để gán
Giá trị trả về
INET_NO_ERROR
thành công, đã hiển thị giao diện mạng
INET_ERROR_UNKNOWN_INTERFACE
không tìm thấy giao diện mạng
other
lỗi hệ thống hoặc nền tảng khác

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct raw_pcb *aRaw,
  InterfaceId intfId
)

LwIPBindInterface

INET_ERROR LwIPBindInterface(
  struct udp_pcb *aUDP,
  InterfaceId intfId
)

NetmaskToPrefixLength

uint8_t NetmaskToPrefixLength(
  const uint8_t *netmask,
  uint16_t netmaskLen
)

Tính độ dài tiền tố từ mặt nạ mạng có độ dài biến đổi.

ParseHostAndPort

INET_ERROR ParseHostAndPort(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort
)

Phân tích cú pháp một chuỗi mà con người đọc được chứa địa chỉ máy chủ lưu trữ hoặc IP và số cổng không bắt buộc (phân tách bằng dấu ":"), hỗ trợ các định dạng sau:

  • :
  • :
  • []:

Thông tin chi tiết
Tham số
[in] aString
Chuỗi mà con người có thể sử dụng lại để phân tích cú pháp.
[in] aStringLen
Độ dài, tính bằng ký tự, của aString.
[out] aHost
Con trỏ trỏ tới phần tên máy chủ lưu trữ của chuỗi đã phân tích cú pháp.
[out] aHostLen
Độ dài, tính bằng ký tự, của một Host.
[out] aPort
Số cổng, nếu có và đã được phân tích cú pháp thành công; nếu không thì 0.
Trả về
INET_ERROR_INVALID_HOST_NAME Nếu dữ liệu nhập cần được phân tích cú pháp có độ dài bằng 0 hoặc không đúng định dạng.
Trả về
INET_ERROR_HOST_NAME_TOO_LONG Nếu tên máy chủ lưu trữ vượt quá 253 ký tự.
Trả về
INET_NO_ERROR Khi thành công.

ParseHostPortAndInterface

INET_ERROR ParseHostPortAndInterface(
  const char *aString,
  uint16_t aStringLen,
  const char *& aHost,
  uint16_t & aHostLen,
  uint16_t & aPort,
  const char *& aInterface,
  uint16_t & aInterfaceLen
)

Phân tích cú pháp chuỗi mà con người có thể đọc được chứa địa chỉ máy chủ lưu trữ hoặc IP, số cổng không bắt buộc (phân tách bằng dấu ":") và tên giao diện không bắt buộc (phân tách bằng dấu ":"), hỗ trợ các định dạng sau:

  • %
  • :
  • :%
  • %
  • :
  • :%
  • %
  • []:
  • []:%

Thông tin chi tiết
Tham số
[in] aString
Chuỗi mà con người có thể sử dụng lại để phân tích cú pháp.
[in] aStringLen
Độ dài, tính bằng ký tự, của aString.
[out] aHost
Con trỏ trỏ tới phần tên máy chủ lưu trữ của chuỗi đã phân tích cú pháp.
[out] aHostLen
Độ dài, tính bằng ký tự, của một Host.
[out] aPort
Số cổng, nếu có và đã được phân tích cú pháp thành công; nếu không thì 0.
[out] aInterface
Con trỏ trỏ đến phần giao diện của chuỗi đã phân tích cú pháp.
[out] aInterfaceLen
Độ dài, tính bằng ký tự, của aInterface.
Trả về
INET_ERROR_INVALID_HOST_NAME Nếu dữ liệu nhập cần được phân tích cú pháp có độ dài bằng 0 hoặc không đúng định dạng.
Trả về
INET_ERROR_HOST_NAME_TOO_LONG Nếu tên máy chủ lưu trữ vượt quá 253 ký tự.
Trả về
INET_NO_ERROR Khi thành công.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

Đăng ký trình định dạng lỗi văn bản cho các lỗi Lớp Inet.

SocketsIPv4JoinLeaveMulticastGroup

INET_ERROR SocketsIPv4JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsIPv6JoinLeaveMulticastGroup

INET_ERROR SocketsIPv6JoinLeaveMulticastGroup(
  int aSocket,
  InterfaceId aInterfaceId,
  const IPAddress & aAddress,
  int aCommand
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  bool aLoopback,
  int aProtocol,
  int aOption
)

SocketsSetMulticastLoopback

INET_ERROR SocketsSetMulticastLoopback(
  int aSocket,
  IPVersion aIPVersion,
  bool aLoopback
)