TREL - 플랫폼

이 모듈에는 DNS-SD 및 UDP/IPv6를 사용하는 스레드 무선 캡슐화 링크 (TREL)를 위한 플랫폼 추상화가 포함되어 있습니다.

요약

Typedef

otPlatTrelPeerInfo typedef
서비스 이름 '_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._udp'에서 진행 중인 DNS-SD 탐색을 시작하여 TREL을 지원하는 다른 기기를 검색해야 합니다(MUST). 진행 중인 탐색은 '추가' 이벤트와 '삭제' 이벤트라는 두 가지 유형의 이벤트를 생성합니다. 탐색이 시작되면 현재 네트워크에 있는 모든 TREL 피어에 대해 'add' 이벤트가 생성됩니다. TREL 피어가 오프라인 상태가 될 때마다 '삭제' 이벤트가 생성됩니다. 그러나 '삭제' 이벤트는 보장되지 않습니다. TREL 서비스 인스턴스가 검색되면 검색된 인스턴스의 SRV 레코드에 표시된 호스트 이름에서 AAAA 레코드에 대해 진행 중인 새로운 DNS-SD 쿼리가 시작되어야 합니다. 피어에서 여러 호스트 IPv6 주소가 검색되면 모든 주소 중에서 범위가 가장 높은 주소를 보고해야 합니다 (MUST). 동일한 범위에 여러 주소가 있는 경우 하나를 무작위로 선택해야 합니다.

TREL 플랫폼은 otPlatTrelHandleDiscoveredPeerInfo() 콜백을 사용하여 발견된 동종 앱 정보를 다시 알려야 합니다(MUST). 이 콜백은 새 피어가 검색되거나 기존 항목이 변경되거나(예: 새 TXT 레코드 또는 새 포트 번호 또는 새 IPv6 주소) 피어가 삭제될 때 호출되어야 합니다(MUST).

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스입니다.
[out] aUdpPort
플랫폼 레이어별로 선택된 포트 번호를 반환하는 포인터입니다.

otPlatTrelHandleDiscoveredPeerInfo

void otPlatTrelHandleDiscoveredPeerInfo(
  otInstance *aInstance,
  const otPlatTrelPeerInfo *aInfo
)

이는 발견된 TREL 동종 앱 정보를 보고하는 플랫폼 레이어의 콜백 함수입니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스입니다.
[in] aInfo
TREL 피어 정보에 대한 포인터입니다.

otPlatTrelHandleReceived

void otPlatTrelHandleReceived(
  otInstance *aInstance,
  uint8_t *aBuffer,
  uint16_t aLength
)

TREL UDP 패킷을 수신했음을 알리기 위한 플랫폼의 콜백입니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aBuffer
수신된 UDP 페이로드가 포함된 버퍼.
[in] aLength
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) 필요한 경우 콘텐츠를 대신 복사해야 합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스입니다.
[in] aPort
광고된 서비스의 SRV 레코드에 포함할 포트 번호입니다.
[in] aTxtData
공지된 서비스에 포함할 (인코딩된) TXT 레코드 데이터에 대한 포인터입니다.
[in] aTxtLength
aTxtData의 길이 (바이트 수)

otPlatTrelSend

void otPlatTrelSend(
  otInstance *aInstance,
  const uint8_t *aUdpPayload,
  uint16_t aUdpPayloadLen,
  const otSockAddr *aDestSockAddr
)

지정된 대상으로 TREL UDP 패킷을 전송하도록 요청합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aUdpPayload
UDP 페이로드를 가리키는 포인터입니다.
[in] aUdpPayloadLen
페이로드 길이 (바이트 수)
[in] aDestSockAddr
대상 소켓 주소입니다.

자료

OpenThread API 참조 주제는 GitHub에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 알아보거나 문서에 참여하려면 리소스를 참고하세요.