NAT64
이 모듈에는 보더 라우터의 NAT64 함수를 위한 함수와 구조체가 포함되어 있습니다.
요약
이러한 함수는 OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
가 사용 설정된 경우에만 사용할 수 있습니다.
열거형 |
|
---|---|
otNat64DropReason{
|
enum 패킷 드롭 이유입니다. |
otNat64State{
|
enum 사용할 수 있습니다. |
Typedef |
|
---|---|
otIp4Address
|
typedefstruct otIp4Address
IPv4 주소를 나타냅니다. |
otIp4Cidr
|
typedefstruct otIp4Cidr
|
otNat64AddressMapping
|
typedefstruct otNat64AddressMapping
NAT64의 주소 매핑 레코드를 나타냅니다. |
otNat64AddressMappingIterator
|
typedef NAT64 주소 매핑을 반복하는 데 사용됩니다. |
otNat64Counters
|
typedefstruct otNat64Counters
NAT64에 대한 카운터를 나타냅니다. |
otNat64DropReason
|
typedefenum otNat64DropReason
패킷 드롭 이유입니다. |
otNat64ErrorCounters
|
typedefstruct otNat64ErrorCounters
NAT64 패킷을 처리할 때 오류로 인해 삭제된 패킷의 카운터를 나타냅니다. |
otNat64ProtocolCounters
|
typedefstruct otNat64ProtocolCounters
NAT64에서 지원하는 프로토콜의 카운터를 나타냅니다. |
otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
|
typedefvoid(*
포인터는 IPv4 데이터그램 (NAT64 변환기에 의해 번역됨)이 수신될 때 호출됩니다. |
변수 |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otIp4Address
|
함수 |
|
---|---|
otIp4AddressFromString(const char *aString, otIp4Address *aAddress)
|
사람이 읽을 수 있는 IPv4 주소 문자열을 이진 표현으로 변환합니다.
|
otIp4AddressToString(const otIp4Address *aAddress, char *aBuffer, uint16_t aSize)
|
void
주소를 문자열로 변환합니다.
|
otIp4CidrFromString(const char *aString, otIp4Cidr *aCidr)
|
사람이 읽을 수 있는 IPv4 CIDR 문자열을 바이너리 표현으로 변환합니다.
|
otIp4CidrToString(const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize)
|
void
IPv4 CIDR을 문자열로 변환합니다.
|
otIp4ExtractFromIp6Address(uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address)
|
void
RFC 6052에 지정된 대로
aIp6Address 에서 NAT64 주소 변환을 수행하여 aIp4Address 를 설정합니다. |
otIp4IsAddressEqual(const otIp4Address *aFirst, const otIp4Address *aSecond)
|
bool
두 개의 IPv4 주소가 동일한지 테스트합니다.
|
otIp4NewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
|
NAT64 변환기에 IPv4 메시지를 보내기 위한 새 메시지 버퍼를 할당합니다.
|
otNat64GetCidr(otInstance *aInstance, otIp4Cidr *aCidr)
|
NAT64 변환기에 구성된 IPv4 CIDR을 가져옵니다.
|
otNat64GetCounters(otInstance *aInstance, otNat64ProtocolCounters *aCounters)
|
void
NAT64 번역기 카운터를 가져옵니다.
|
otNat64GetErrorCounters(otInstance *aInstance, otNat64ErrorCounters *aCounters)
|
void
NAT64 변환기 오류 카운터를 가져옵니다.
|
otNat64GetNextAddressMapping(otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping)
|
반복자를 사용하여 다음 AddressMapping 정보를 가져옵니다.
|
otNat64GetPrefixManagerState(otInstance *aInstance)
|
NAT64 프리픽스 관리자의 상태를 가져옵니다.
|
otNat64GetTranslatorState(otInstance *aInstance)
|
NAT64 변환기의 상태를 가져옵니다.
|
otNat64InitAddressMappingIterator(otInstance *aInstance, otNat64AddressMappingIterator *aIterator)
|
void
otNat64AddressMappingIterator 를 초기화합니다. |
otNat64Send(otInstance *aInstance, otMessage *aMessage)
|
IPv4 데이터그램을 IPv6 데이터그램으로 변환하고 스레드 인터페이스를 통해 전송합니다.
|
otNat64SetEnabled(otInstance *aInstance, bool aEnabled)
|
void
NAT64 기능을 사용 설정 또는 중지합니다.
|
otNat64SetIp4Cidr(otInstance *aInstance, const otIp4Cidr *aCidr)
|
변환된 발신 IPv4 패킷의 소스 주소를 설정할 때 사용되는 CIDR을 설정합니다.
|
otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)
|
void
콜백을 등록하여 수신된 IPv4 데이터그램을 제공합니다.
|
otNat64SynthesizeIp6Address(otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address)
|
기본 NAT64 프리픽스와 지정된 IPv4 주소에서 RFC 6052에 지정된 대로 NAT64 주소 변환을 수행하여 IPv6 주소를 설정합니다.
|
구조체 |
|
---|---|
otIp4Address |
IPv4 주소를 나타냅니다. |
otIp4Cidr |
IPv4 CIDR 블록을 나타냅니다. |
otNat64AddressMapping |
NAT64의 주소 매핑 레코드를 나타냅니다. |
otNat64AddressMappingIterator |
NAT64 주소 매핑을 반복하는 데 사용됩니다. |
otNat64Counters |
NAT64에 대한 카운터를 나타냅니다. |
otNat64ErrorCounters |
NAT64 패킷을 처리할 때 오류로 인해 삭제된 패킷의 카운터를 나타냅니다. |
otNat64ProtocolCounters |
NAT64에서 지원하는 프로토콜의 카운터를 나타냅니다. |
Union |
|
---|---|
otIp4Address:: |
열거형
otNat64DropReason
otNat64DropReason
패킷 드롭 이유입니다.
속성 | |
---|---|
OT_NAT64_DROP_REASON_ILLEGAL_PACKET
|
데이터그램을 파싱할 수 없어 패킷이 중단되었습니다. |
OT_NAT64_DROP_REASON_NO_MAPPING
|
매핑을 찾을 수 없거나 매핑 풀이 소진되어 패킷이 삭제되었습니다. |
OT_NAT64_DROP_REASON_UNKNOWN
|
알 수 없는 이유로 패킷이 중단되었습니다. |
OT_NAT64_DROP_REASON_UNSUPPORTED_PROTO
|
지원되지 않는 IP 프로토콜로 인한 패킷 손실입니다. |
otNat64State
otNat64State
사용할 수 있습니다.
속성 | |
---|---|
OT_NAT64_STATE_ACTIVE
|
BR에서 NAT64 프리픽스를 게시하거나 패킷을 변환하고 있습니다. |
OT_NAT64_STATE_DISABLED
|
NAT64가 사용 중지되었습니다. |
OT_NAT64_STATE_IDLE
|
NAT64가 사용 설정되어 있지만 이 BR은 활성 NAT64 BR이 아닙니다. |
OT_NAT64_STATE_NOT_RUNNING
|
NAT64가 사용 설정되었지만 하나 이상의 NAT64 종속 항목이 실행되고 있지 않습니다. |
Typedef
otIp4Cidr
struct otIp4Cidr otIp4Cidr
otNat64AddressMappingIterator
struct otNat64AddressMappingIterator otNat64AddressMappingIterator
NAT64 주소 매핑을 반복하는 데 사용됩니다.
이 유형의 필드는 불투명이므로 (OpenThread 코어에서만 사용할 수 있음) 호출자가 액세스하거나 사용하면 안 됩니다.
반복자를 사용하려면 먼저 otNat64AddressMappingIteratorInit()
를 사용하여 초기화해야 합니다(MUST).
otNat64ErrorCounters
struct otNat64ErrorCounters otNat64ErrorCounters
NAT64 패킷을 처리할 때 오류로 인해 삭제된 패킷의 카운터를 나타냅니다.
otNat64ProtocolCounters
struct otNat64ProtocolCounters otNat64ProtocolCounters
NAT64에서 지원하는 프로토콜의 카운터를 나타냅니다.
otNat64ReceiveIp4Callback
void(* otNat64ReceiveIp4Callback)(otMessage *aMessage, void *aContext)
포인터는 IPv4 데이터그램 (NAT64 변환기에 의해 번역됨)이 수신될 때 호출됩니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
변수
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otIp4Address OT_TOOL_PACKED_END
함수
otIp4AddressFromString
otError otIp4AddressFromString( const char *aString, otIp4Address *aAddress )
사람이 읽을 수 있는 IPv4 주소 문자열을 이진 표현으로 변환합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
otIp4AddressToString
void otIp4AddressToString( const otIp4Address *aAddress, char *aBuffer, uint16_t aSize )
주소를 문자열로 변환합니다.
문자열 형식은 주소에 4바이트의 4바이트 점선 표기법 (예: '127.0.0.1')을 입력합니다.
결과 문자열이 aSize
문자 내의 aBuffer
에 맞지 않는 경우 문자열이 잘리지만 출력된 문자열은 항상 null로 끝납니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
otIp4CidrFromString
otError otIp4CidrFromString( const char *aString, otIp4Cidr *aCidr )
사람이 읽을 수 있는 IPv4 CIDR 문자열을 바이너리 표현으로 변환합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
otIp4CidrToString
void otIp4CidrToString( const otIp4Cidr *aCidr, char *aBuffer, uint16_t aSize )
IPv4 CIDR을 문자열로 변환합니다.
문자열 형식은 접두사 길이와 함께 주소에 4바이트의 사각형 표기법 (예: '127.0.0.1/32')을 입력합니다.
결과 문자열이 aSize
문자 내의 aBuffer
에 맞지 않는 경우 문자열이 잘리지만 출력된 문자열은 항상 null로 끝납니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
otIp4ExtractFromIp6Address
void otIp4ExtractFromIp6Address( uint8_t aPrefixLength, const otIp6Address *aIp6Address, otIp4Address *aIp4Address )
RFC 6052에 지정된 대로 aIp6Address
에서 NAT64 주소 변환을 수행하여 aIp4Address
를 설정합니다.
NAT64 aPrefixLength
는 32, 40, 48, 56, 64, 96 값 중 하나여야 하며(MUST), 그렇지 않으면 이 메서드의 동작이 정의되지 않습니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
otIp4IsAddressEqual
bool otIp4IsAddressEqual( const otIp4Address *aFirst, const otIp4Address *aSecond )
두 개의 IPv4 주소가 동일한지 테스트합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
otIp4NewMessage
otMessage * otIp4NewMessage( otInstance *aInstance, const otMessageSettings *aSettings )
NAT64 변환기에 IPv4 메시지를 보내기 위한 새 메시지 버퍼를 할당합니다.
이 함수에 의해 할당되는 메시지 버퍼에는 20바이트 (IPv6 헤더 크기와 IPv4 헤더 크기의 차이)가 예약됩니다.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
가 사용 설정된 경우 사용 가능합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 |
메시지 버퍼에 대한 포인터 또는 사용할 수 있는 메시지 버퍼가 없거나 매개변수가 유효하지 않은 경우 NULL입니다.
|
otNat64Send
otNat64GetCidr
otError otNat64GetCidr( otInstance *aInstance, otIp4Cidr *aCidr )
NAT64 변환기에 구성된 IPv4 CIDR을 가져옵니다.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
가 사용 설정된 경우 사용 가능합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otNat64GetCounters
void otNat64GetCounters( otInstance *aInstance, otNat64ProtocolCounters *aCounters )
NAT64 번역기 카운터를 가져옵니다.
카운터는 인스턴스가 초기화된 이후 계산됩니다.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
가 사용 설정된 경우 사용 가능합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otNat64GetErrorCounters
void otNat64GetErrorCounters( otInstance *aInstance, otNat64ErrorCounters *aCounters )
NAT64 변환기 오류 카운터를 가져옵니다.
OpenThread 인스턴스가 초기화되면 카운터는 0으로 초기화됩니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otNat64GetNextAddressMapping
otError otNat64GetNextAddressMapping( otInstance *aInstance, otNat64AddressMappingIterator *aIterator, otNat64AddressMapping *aMapping )
반복자를 사용하여 다음 AddressMapping 정보를 가져옵니다.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
가 사용 설정된 경우 사용 가능합니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
otNat64GetPrefixManagerState
otNat64State otNat64GetPrefixManagerState( otInstance *aInstance )
NAT64 프리픽스 관리자의 상태를 가져옵니다.
OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
가 사용 설정된 경우 사용 가능합니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
otNat64GetTranslatorState
otNat64State otNat64GetTranslatorState( otInstance *aInstance )
NAT64 변환기의 상태를 가져옵니다.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
가 사용 설정된 경우 사용 가능합니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
otNat64InitAddressMappingIterator
void otNat64InitAddressMappingIterator( otInstance *aInstance, otNat64AddressMappingIterator *aIterator )
otNat64AddressMappingIterator
를 초기화합니다.
반복자는 사용 전에 초기화되어야 합니다.
반복자를 다시 초기화하여 매핑 정보의 시작부터 다시 시작할 수 있습니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otNat64Send
otError otNat64Send( otInstance *aInstance, otMessage *aMessage )
IPv4 데이터그램을 IPv6 데이터그램으로 변환하고 스레드 인터페이스를 통해 전송합니다.
발신자는 이 전화를 걸 때 aMessage
의 소유권을 이전합니다. OT_ERROR_NONE
이외의 값이 반환되는 경우를 포함하여 처리가 완료되면 OpenThread가 aMessage
을 확보합니다.
세부정보 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||||
반환 값 |
|
otNat64SetEnabled
void otNat64SetEnabled( otInstance *aInstance, bool aEnabled )
NAT64 기능을 사용 설정 또는 중지합니다.
참고: 여기에는 NAT64 변환기 (OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
가 사용 설정된 경우) 및 NAT64 Prefix Manager (OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
가 사용 설정된 경우)가 포함됩니다.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
가 사용 설정된 경우 disabled를 true로 설정하면 번역사의 매핑 테이블이 재설정됩니다.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE
또는 OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
가 사용 설정된 경우 사용할 수 있습니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otNat64GetTranslatorState
otNat64GetPrefixManagerState
otNat64SetIp4Cidr
otError otNat64SetIp4Cidr( otInstance *aInstance, const otIp4Cidr *aCidr )
변환된 발신 IPv4 패킷의 소스 주소를 설정할 때 사용되는 CIDR을 설정합니다.
OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE이 사용 설정된 경우에만 사용할 수 있습니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
otBorderRouterSend
otBorderRouterSetReceivedCallback
otNat64SetReceiveIp4Callback
void otNat64SetReceiveIp4Callback( otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext )
콜백을 등록하여 수신된 IPv4 데이터그램을 제공합니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
otNat64SynthesizeIp6Address
otError otNat64SynthesizeIp6Address( otInstance *aInstance, const otIp4Address *aIp4Address, otIp6Address *aIp6Address )
기본 NAT64 프리픽스와 지정된 IPv4 주소에서 RFC 6052에 지정된 대로 NAT64 주소 변환을 수행하여 IPv6 주소를 설정합니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 |
OT_ERROR_NONE NAT64 접두사와 IPv4 주소에서 IPv6 주소를 합성했습니다.
|
||||||
반환 |
OT_ERROR_INVALID_STATE 네트워크 데이터에 유효한 NAT64 프리픽스가 없습니다.
|
매크로
OT_IP4_ADDRESS_SIZE
OT_IP4_ADDRESS_SIZE 4
IPv4 주소의 크기 (바이트)
OT_IP4_ADDRESS_STRING_SIZE
OT_IP4_ADDRESS_STRING_SIZE 17
길이 000.000.000.000 + 접미사 NUL
OT_IP4_CIDR_STRING_SIZE
OT_IP4_CIDR_STRING_SIZE 20
길이 000.000.000.000/00 + 접미사 NUL
자료
OpenThread API 참조 주제는 GitHub에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 알아보거나 문서에 참여하려면 리소스를 참고하세요.