nl::Inet

요약

열거

@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
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
IP 주소 확인이 수행되는 방법을 제어하는 옵션입니다.
IPAddressType{
  kIPAddressType_Unknown = 0,
  kIPAddressType_IPv4 = 1,
  kIPAddressType_IPv6 = 2,
  kIPAddressType_Any = 3
}
enum
인터넷 프로토콜 주소군입니다.
IPProtocol{
  kIPProtocol_ICMPv6 = 58,
  kIPProtocol_ICMPv4 = 1
}
enum
IP 제품군의 일부 프로토콜 번호입니다.
IPV6MulticastGroup{
  kIPV6MulticastGroup_AllRouters = 2
}
enum
인터넷 프로토콜 멀티캐스트 그룹 식별자
IPVersion{
  kIPVersion_6 = 6,
  kIPVersion_4 = 4
}
enum
사용 중인 IP 프로토콜의 버전입니다.
IPv6MulticastFlag{
  kIPv6MulticastFlag_Transient = 0x01,
  kIPv6MulticastFlag_Prefix = 0x02
}
enum
인터넷 프로토콜 v6 멀티캐스트 플래그입니다.
IPv6MulticastScope{
  kIPv6MulticastScope_Interface = 1,
  kIPv6MulticastScope_Link = 2,
  kIPv6MulticastScope_IPv4 = 3,
  kIPv6MulticastScope_Admin = 4,
  kIPv6MulticastScope_Site = 5,
  kIPv6MulticastScope_Organization = 8,
  kIPv6MulticastScope_Global = 14
}
enum
인터넷 프로토콜 멀티캐스트 주소 범위입니다.

Typedef

InterfaceId typedef
struct netif *
시스템 네트워크 인터페이스 표시기

변수

sIOCTLSocket = -1
int

함수

CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress & aAddress)
CloseIOCTLSocket(void)
void
GetIOCTLSocket로 만든 전역 소켓을 닫습니다.
FormatInetLayerError(char *buf, uint16_t bufSize, int32_t err)
bool
Inet 레이어 오류가 있을 경우, 사람이 읽을 수 있는 NULL로 종료되고 오류를 설명하는 C 문자열을 반환합니다.
GetIOCTLSocket(void)
int
특정 네트워크 IOCTL을 호출하는 데 유용한 전역 범용 소켓을 반환합니다.
GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
NL_DLL_EXPORT INET_ERROR
네트워크 인터페이스의 이름을 가져옵니다.
INET_IsInetEvent(Weave::System::EventType aType)
bool
System::EventType이 유효한 Inet 레이어 이벤트 유형인지 확인하세요.
InterfaceNameToId(const char *intfName, InterfaceId & intfId)
NL_DLL_EXPORT INET_ERROR
표시된 이름을 네트워크 인터페이스 목록에서 검색합니다.
LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
NetmaskToPrefixLength(const uint8_t *netmask, uint16_t netmaskLen)
uint8_t
가변 길이 넷마스크에서 프리픽스 길이를 계산합니다.
ParseHostAndPort(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort)
호스트 또는 IP 주소와 선택적 포트 번호(':'로 구분됨)를 포함하며 다음 형식을 지원하는 사람이 읽을 수 있는 문자열을 파싱합니다.
ParseHostPortAndInterface(const char *aString, uint16_t aStringLen, const char *& aHost, uint16_t & aHostLen, uint16_t & aPort, const char *& aInterface, uint16_t & aInterfaceLen)
호스트 또는 IP 주소, 선택적 포트 번호(':'로 구분됨) 및 다음 형식을 지원하는 선택적 인터페이스 이름(''로 구분됨)을 포함하는 사람이 읽을 수 있는 문자열을 파싱합니다.
RegisterInetLayerErrorFormatter(void)
void
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)

클래스

nl::Inet::AsyncDNSResolverSockets

이는 InetLayer에서 비동기 도메인 이름 시스템 (DNS) 변환을 위한 도우미 API를 제공하는 InetLayer의 내부 클래스입니다.

nl::Inet::DNSResolver

이는 InetLayer에서 DNS (도메인 이름 시스템) 확인의 추상화를 제공하는 InetLayer의 내부 클래스입니다.

nl::Inet::EndPointBasis

인터넷 전송 엔드포인트 클래스의 기반입니다.

nl::Inet::IPAddress

인터넷 프로토콜 주소

nl::Inet::IPEndPointBasis

이 클래스의 객체는 인스턴스화할 수 없는 IP 프로토콜 엔드포인트를 나타냅니다.

nl::Inet::IPPacketInfo

수신/발신 메시지/연결에 관한 정보입니다.

nl::Inet::IPPrefix

인터넷 프로토콜 주소 접두사입니다.

nl::Inet::InetLayer

단일 스레드에 대해 타이머, DNS (도메인 이름 시스템) 변환, TCP 네트워크 전송, UDP 네트워크 전송, 원시 네트워크 전송 등 인터넷 서비스에 대한 액세스를 제공합니다.

nl::Inet::InetLayerBasis

이 클래스는 InetLayer 객체로 관리되는 참조 계산 객체의 기본 클래스입니다.

nl::Inet::InterfaceAddressIterator

시스템 네트워크 인터페이스 IP 주소 목록의 반복자입니다.

nl::Inet::InterfaceIterator

시스템 네트워크 인터페이스 목록의 반복자입니다.

nl::Inet::RawEndPoint

이 클래스의 객체는 원시 IP 네트워크 엔드포인트를 나타냅니다.

nl::Inet::SocketEvents

소켓에서 요청/대기 중인 I/O 이벤트 집합을 나타냅니다.

nl::Inet::TCPEndPoint

이 클래스의 객체는 TCP 전송 엔드포인트를 나타냅니다.

nl::Inet::TunEndPoint

이 클래스의 객체는 터널 인터페이스를 나타냅니다.

nl::Inet::UDPEndPoint

이 클래스의 객체는 UDP 전송 엔드포인트를 나타냅니다.

Union

nl::Inet::PeerSockAddr

네임스페이스

nl::Inet::Platform

열거

@7

 @7

Inet 레이어 이벤트 유형 정의입니다.

속성
kInetEvent_DNSResolveComplete

DNS 이름 확인 완료 이벤트입니다.

kInetEvent_RawDataReceived

InetLayer 원시 엔드포인트를 통한 데이터 수신 이벤트입니다.

kInetEvent_TCPConnectComplete

TCP 연결 완료 이벤트입니다.

kInetEvent_TCPConnectionReceived

TCP 연결 수신에 대한 이벤트입니다.

kInetEvent_TCPDataReceived

TCP 연결을 통한 데이터 수신 이벤트입니다.

kInetEvent_TCPDataSent

TCP 연결을 통한 데이터 전송 이벤트입니다.

kInetEvent_TCPError

TCP 연결 오류 이벤트입니다.

kInetEvent_TunDataReceived

Weave 터널을 통한 데이터 수신 이벤트입니다.

kInetEvent_UDPDataReceived

UDP를 통한 데이터 수신 이벤트입니다.

DNSOptions

 DNSOptions

IP 주소 확인이 수행되는 방법을 제어하는 옵션입니다.

속성
kDNSOption_AddrFamily_Any

네임서버에서 반환된 순서대로 IPv4 또는 IPv6 주소를 반환합니다.

kDNSOption_AddrFamily_IPv4Only

IPv4 주소만 반환합니다.

kDNSOption_AddrFamily_IPv4Preferred

IPv4 또는 IPv6 주소를 반환하며, IPv4 주소가 먼저 나열됩니다.

kDNSOption_AddrFamily_IPv6Only

IPv6 주소만 반환합니다.

kDNSOption_AddrFamily_IPv6Preferred

IPv4 또는 IPv6 주소를 반환하며, IPv6 주소가 먼저 나열됩니다.

kDNSOption_AddrFamily_Mask

원하는 주소 집합을 나타내는 DNSOptions 정수 값 내의 비트입니다.

kDNSOption_Flags_Mask

플래그용으로 예약된 DNSOptions 정수 값 내의 비트입니다.

kDNSOption_ValidFlags

모든 유효한 DNSOption 플래그 집합입니다.

IPAddressType

 IPAddressType

인터넷 프로토콜 주소군입니다.

IPAddressType 유형의 값은 IPAddress::Type() 메서드에서 반환됩니다. 이러한 매개변수는 주소의 사용에 수반되는 주소 집합을 나타냅니다.

속성
kIPAddressType_Any

지정되지 않은 인터넷 주소 (프로토콜 버전과 무관)

kIPAddressType_IPv4

인터넷 프로토콜 버전 4

kIPAddressType_IPv6

인터넷 프로토콜 버전 6

kIPAddressType_Unknown

사용되지 않음.

IPProtocol

 IPProtocol

IP 제품군의 일부 프로토콜 번호입니다.

속성
kIPProtocol_ICMPv4

ICMPv4입니다.

kIPProtocol_ICMPv6

ICMPv6).

IPV6MulticastGroup

 IPV6MulticastGroup

인터넷 프로토콜 멀티캐스트 그룹 식별자

IPV6MulticastGroup 유형의 값은 IPAddress::MakeIPv6Multicast() 메서드를 호출하는 데 사용됩니다. IETF가 IANA에 등록한 고유 그룹 식별자를 나타냅니다.

속성
kIPV6MulticastGroup_AllRouters

RFC 4291입니다.

IPVersion

 IPVersion

사용 중인 IP 프로토콜의 버전입니다.

속성
kIPVersion_4

IPv4

kIPVersion_6

IPv6

IPv6MulticastFlag

 IPv6MulticastFlag

인터넷 프로토콜 v6 멀티캐스트 플래그입니다.

IPv6MulticastFlag 유형의 값은 IPAddress::MakeIPv6Multicast() 메서드를 호출하는 데 사용됩니다. 생성할 IPv6 멀티캐스트 주소의 유형을 나타냅니다. 이 번호는 IETF에 의해 IANA에 등록됩니다.

속성
kIPv6MulticastFlag_Prefix

멀티캐스트 주소는 (1) 네트워크 접두사에 기반합니다.

kIPv6MulticastFlag_Transient

멀티캐스트 주소는 잘 알려진 주소(즉, IANA가 할당)가 아니라 (1) 일시적(즉, 동적으로 할당됨)입니다.

IPv6MulticastScope

 IPv6MulticastScope

인터넷 프로토콜 멀티캐스트 주소 범위입니다.

IPv6MulticastScope 유형의 값은 IPAddress::MakeIPv6Multicast() 메서드를 호출하는 데 사용됩니다. 이는 결과로 지정된 멀티캐스트 그룹의 라우팅 가능한 범위를 나타냅니다. 이 번호는 IETF에 의해 IANA에 등록됩니다.

속성
kIPv6MulticastScope_Admin

영역-로컬 범위입니다.

kIPv6MulticastScope_Global

전역 범위

kIPv6MulticastScope_IPv4

영역-로컬('IPv4') 범위입니다.

kIPv6MulticastScope_Interface

인터페이스-로컬 범위입니다.

kIPv6MulticastScope_Link

링크-로컬 범위입니다.

kIPv6MulticastScope_Organization

조직-로컬 범위입니다.

kIPv6MulticastScope_Site

영역-로컬 범위입니다.

Typedef

InterfaceId

struct netif * InterfaceId

시스템 네트워크 인터페이스 표시기

이동성은 이 별칭을 전혀 감시하지 않는가에 달려 있습니다. 향후 콘크리트 불투명 클래스로 대체될 수 있습니다.

참고: '인터페이스 식별자'라는 용어는 또한 모든 관련 IETF 표준 문서에서 IPv6 주소의 하위 64비트를 일반적으로 지칭하며, 여기서 약어 "IID"는 자주 사용됩니다. 이 텍스트에서 '인터페이스 표시기'라는 용어는 는 이 유형의 별칭 값을 나타냅니다.

변수

sIOCTLSocket

int sIOCTLSocket = -1

함수

CheckMulticastGroupArgs

INET_ERROR CheckMulticastGroupArgs(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

CloseIOCTLSocket

void CloseIOCTLSocket(
  void
)

GetIOCTLSocket로 만든 전역 소켓을 닫습니다.

이 함수는 전역 IOCTL 소켓을 열어두면 누수로 등록될 경우에 제공됩니다.

참고: 이 함수는 GetIOCTLSocket와 관련하여 스레드로부터 안전하지 않습니다.

FormatInetLayerError

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

Inet 레이어 오류가 있을 경우, 사람이 읽을 수 있는 NULL로 종료되고 오류를 설명하는 C 문자열을 반환합니다.

세부정보
매개변수
[in] buf
오류 문자열을 배치할 버퍼입니다.
[in] bufSize
제공된 버퍼의 크기(바이트)
[in] err
설명할 오류입니다.
반환
제공된 버퍼에 설명 문자열이 작성된 경우 true입니다.
반환
false 제공된 오류가 Inet 레이어 오류가 아닌 경우.

GetIOCTLSocket

int GetIOCTLSocket(
  void
)

특정 네트워크 IOCTL을 호출하는 데 유용한 전역 범용 소켓을 반환합니다.

이 함수는 모든 플랫폼에서 스레드로부터 안전합니다.

GetInterfaceName

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

네트워크 인터페이스의 이름을 가져옵니다.

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.

세부정보
매개변수
[in] intfId
네트워크 인터페이스
[in] nameBuf
인터페이스 이름을 쓸 메모리 영역
[in] nameBufSize
nameBuf로 표시된 영역의 크기
반환 값
INET_NO_ERROR
성공 결과, 인터페이스 이름 작성됨
INET_ERROR_NO_MEMORY
이름이 너무 커서 버퍼에 쓸 수 없습니다.
other
다른 시스템 또는 플랫폼 오류

INET_IsInetEvent

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

System::EventType이 유효한 Inet 레이어 이벤트 유형인지 확인하세요.

세부정보
매개변수
[in] aType
Weave 시스템 레이어 이벤트 유형입니다.
반환
열거된 범위 내에 있으면 true이고, 그렇지 않으면 false입니다.

InterfaceNameToId

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

표시된 이름을 네트워크 인터페이스 목록에서 검색합니다.

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.

세부정보
매개변수
[in] intfName
찾으려는 네트워크 인터페이스의 이름입니다.
[out] intfId
네트워크 인터페이스의 표시기를
반환 값
INET_NO_ERROR
성공, 네트워크 인터페이스가 표시됨
INET_ERROR_UNKNOWN_INTERFACE
네트워크 인터페이스를 찾을 수 없음
other
다른 시스템 또는 플랫폼 오류

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
)

가변 길이 넷마스크에서 프리픽스 길이를 계산합니다.

ParseHostAndPort

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

호스트 또는 IP 주소와 선택적 포트 번호(':'로 구분됨)를 포함하며 다음 형식을 지원하는 사람이 읽을 수 있는 문자열을 파싱합니다.

  • :
  • :
  • []:

세부정보
매개변수
[in] aString
파싱할 사람이 읽을 수 있는 문자열입니다.
[in] aStringLen
aString의 문자 길이입니다.
[out] aHost
파싱된 문자열의 호스트 이름 부분에 대한 포인터입니다.
[out] aHostLen
호스트의 문자 길이입니다.
[out] aPort
포트 번호(있고 파싱이 완료된 경우) 그 외에는 0입니다.
반환
INET_ERROR_INVALID_HOST_NAME: 파싱할 입력의 길이가 0이거나 잘못된 형식입니다.
반환
INET_ERROR_HOST_NAME_TOO_LONG 호스트 이름이 253자를 초과하는 경우
반환
INET_NO_ERROR. 성공 시.

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
)

호스트 또는 IP 주소, 선택적 포트 번호(':'로 구분됨) 및 다음 형식을 지원하는 선택적 인터페이스 이름(''로 구분됨)을 포함하는 사람이 읽을 수 있는 문자열을 파싱합니다.

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

세부정보
매개변수
[in] aString
파싱할 사람이 읽을 수 있는 문자열입니다.
[in] aStringLen
aString의 문자 길이입니다.
[out] aHost
파싱된 문자열의 호스트 이름 부분에 대한 포인터입니다.
[out] aHostLen
호스트의 문자 길이입니다.
[out] aPort
포트 번호(있고 파싱이 완료된 경우) 그 외에는 0입니다.
[out] aInterface
파싱된 문자열의 인터페이스 부분에 대한 포인터입니다.
[out] aInterfaceLen
Interface의 문자 길이입니다.
반환
INET_ERROR_INVALID_HOST_NAME: 파싱할 입력의 길이가 0이거나 잘못된 형식입니다.
반환
INET_ERROR_HOST_NAME_TOO_LONG 호스트 이름이 253자를 초과하는 경우
반환
INET_NO_ERROR. 성공 시.

RegisterInetLayerErrorFormatter

void RegisterInetLayerErrorFormatter(
  void
)

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
)