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

ICMP v4에 의해 결정됩니다.

kIPProtocol_ICMPv6

ICMP.v6

IPV6MulticastGroup

 IPV6MulticastGroup

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

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

속성
kIPV6MulticastGroup_AllRouters

RFC 4291입니다.

IPVersion

 IPVersion

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

속성
kIPVersion_4

IPv4입니다.

kIPVersion_6

IPv6

IPv6MulticastFlag

 IPv6MulticastFlag

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

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

속성
kIPv6MulticastFlag_Prefix

멀티캐스트 주소는 네트워크 프리픽스를 기반으로 (1)입니다.

kIPv6MulticastFlag_Transient

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

IPv6MulticastScope

 IPv6MulticastScope

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

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

속성
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 소켓을 연 상태로 두면 누수로 등록될 경우를 위해 제공됩니다.

NB: 이 함수는 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
aHost의 문자 길이입니다.
[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
aHost의 문자 길이입니다.
[out] aPort
파싱에 성공한 경우 포트 번호이며, 그렇지 않은 경우 0입니다.
[out] aInterface
파싱된 문자열의 인터페이스 부분에 대한 포인터입니다.
[out] aInterfaceLen
aInterface의 문자 길이입니다.
반환
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
)