TREL - 플랫폼
이 모듈에는 DNS-SD 및 UDP/IPv6을 사용하는 TREL (Thread Radio Encapsulation Link)의 플랫폼 추상화가 포함되어 있습니다.
요약
Typedef |
|
---|---|
otPlatTrelPeerInfo
|
typedefstruct otPlatTrelPeerInfo
이 구조는 서비스 이름 '_trel._udp'에서 DNS-SD 탐색을 사용하여 발견된 TREL 피어 정보를 나타냅니다. |
함수 |
|
---|---|
otPlatTrelDisable(otInstance *aInstance)
|
void
이 함수는 TREL 플랫폼 레이어를 사용 중지합니다.
|
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
|
void
이 함수는 TREL 플랫폼 레이어를 초기화하고 사용 설정합니다.
|
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
|
void
검색된 TREL 피어 정보를 보고하는 플랫폼 레이어의 콜백 함수입니다.
|
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
|
void
이 함수는 수신된 TREL UDP 패킷을 알리기 위해 플랫폼의 콜백입니다.
|
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
|
void
이 함수는 DNS-SD [RFC6763]를 사용하여 공지할 새 서비스를 등록합니다.
|
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
|
void
이 함수는 지정된 대상으로 전송되도록 TREL UDP 패킷을 요청합니다.
|
구조체 |
|
---|---|
otPlatTrelPeerInfo |
이 구조는 서비스 이름 '_trel._udp'에서 DNS-SD 탐색을 사용하여 발견된 TREL 피어 정보를 나타냅니다. |
Typedef
otPlatTrelPeerInfo
struct otPlatTrelPeerInfo otPlatTrelPeerInfo
이 구조는 서비스 이름 '_trel._udp'에서 DNS-SD 탐색을 사용하여 발견된 TREL 피어 정보를 나타냅니다.
함수
otPlatTrelDisable
void otPlatTrelDisable( otInstance *aInstance )
이 함수는 TREL 플랫폼 레이어를 사용 중지합니다.
이 호출 후에 플랫폼 레이어는 서비스 이름 '_trel._udp'에서 DNS-SD 탐색을 중지하고, otPlatTrelRegisterService()
에서 TREL DNS-SD 서비스 공지를 중지하고, TREL 메시지 수신에 사용되는 UDP 소켓을 닫아야 합니다 (MUST).
[in] aInstance OpenThread 인스턴스.
otPlatTrelEnable
void otPlatTrelEnable( otInstance *aInstance, uint16_t *aUdpPort )
이 함수는 TREL 플랫폼 레이어를 초기화하고 사용 설정합니다.
이 호출 시 플랫폼 레이어는 다음을 실행해야 합니다(MUST).
1) TREL 플랫폼 레이어가 UDP 소켓을 열어 피어에서 TREL 메시지를 수신하고 수신해야 합니다(MUST). 이 소켓은 플랫폼 레이어에서 선택한 임시 포트 번호에 바인딩됩니다. 포트 번호는 aUdpPort
로 반환되어야 합니다. 또한 이 소켓은 TREL이 지원되는 네트워크 인터페이스에 결합됩니다. TREL이 사용 설정된 동안에는 소켓과 선택한 포트가 유효해야 합니다.
2) 플랫폼 레이어가 TREL을 지원하는 다른 기기를 검색하기 위해 로컬 탐색 도메인 내의 서비스 이름 '_trel._udp'에서 지속적인 DNS-SD 탐색을 시작해야 합니다(MUST). 진행 중인 탐색은 '추가' 이벤트와 '삭제' 이벤트 등 두 가지 유형의 이벤트를 생성합니다. 탐색이 시작되면 현재 네트워크에 있는 모든 TREL 피어에 대해 'add' 이벤트를 생성합니다. TREL 피어가 오프라인 상태가 될 때마다 '삭제' 이벤트가 생성됩니다. 하지만 'remove' 이벤트는 보장되지 않습니다. TREL 서비스 인스턴스가 발견되면 발견된 인스턴스의 SRV 레코드에 표시된 호스트 이름으로 AAAA 레코드에 대한 새로운 진행 중인 DNS-SD 쿼리가 시작되어야 합니다. 피어에서 여러 호스트 IPv6 주소를 발견하면 모든 주소 중에서 범위가 가장 높은 주소를 보고해야 합니다 (동일한 범위에 여러 주소가 있는 경우 하나를 선택해야 함).
TREL 플랫폼은 otPlatTrelHandleDiscoveredPeerInfo()
콜백을 사용하여 발견된 피어 정보를 다시 신호로 보내야 합니다. 이 콜백은 새 피어가 발견될 때, 기존 항목이 변경되거나(예: 새 TXT 레코드, 새 포트 번호 또는 새 IPv6 주소) 피어가 삭제될 때 호출되어야 합니다(MUST).
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
검색된 TREL 피어 정보를 보고하는 플랫폼 레이어의 콜백 함수입니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otPlatTrelHandleReceived
void otPlatTrelHandleReceived( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength )
이 함수는 수신된 TREL UDP 패킷을 알리기 위해 플랫폼의 콜백입니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
otPlatTrelRegisterService
void otPlatTrelRegisterService( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength )
이 함수는 DNS-SD [RFC6763]를 사용하여 공지할 새 서비스를 등록합니다.
서비스 이름은 '_trel._udp'입니다. 플랫폼은 자체 호스트 이름을 사용해야 하며, 이 이름은 서비스 이름 및 로컬 DNS-SD 도메인 이름과 결합되어 전체 서비스 인스턴스 이름(예: 'example-host._trel._udp.local')을 생성합니다.
서비스 인스턴스 이름이 표시되는 도메인은 mDNS의 경우 'local'이며 mDNS 이외의 로컬 DNS-SD 서비스의 경우 서비스 등록에 사용되는 모든 도메인입니다.
이후 이 함수를 호출하면 이전 서비스가 업데이트됩니다. TXT 레코드 데이터 또는 포트 번호를 업데이트하는 데 사용됩니다.
aTxtData
버퍼는 이 함수의 반환 후에도 유지되지 않습니다. 플랫폼 레이어는 포인터를 유지하지 않고 필요한 경우 콘텐츠를 복사해서는 안 됩니다(MUST NOT).
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
otPlatTrelSend
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
이 함수는 지정된 대상으로 전송되도록 TREL UDP 패킷을 요청합니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
리소스
OpenThread API 참조 주제는 GitHub에서 제공되는 소스 코드에서 시작됩니다. 자세한 내용을 알아보거나 문서에 기여하려면 리소스를 참조하세요.