TREL - Platform
Bu modül, DNS-SD ve UDP/IPv6 kullanan Thread Radio Encapsulation Link (TREL) için platform soyutlamasını içerir.
Özet
Türdefler |
|
---|---|
otPlatTrelPeerInfo
|
typedefstruct otPlatTrelPeerInfo
"_trel._udp" hizmet adında DNS-SD göz atma kullanılarak keşfedilen bir TREL eş bilgisini temsil eder. |
İşlevler |
|
---|---|
otPlatTrelDisable(otInstance *aInstance)
|
void
TREL platform katmanını devre dışı bırakır.
|
otPlatTrelEnable(otInstance *aInstance, uint16_t *aUdpPort)
|
void
TREL platform katmanını başlatır ve etkinleştirir.
|
otPlatTrelHandleDiscoveredPeerInfo(otInstance *aInstance, const otPlatTrelPeerInfo *aInfo)
|
void
Bu, keşfedilen TREL benzer bilgilerini bildirmek için platform katmanından geri çağırma işlevidir.
|
otPlatTrelHandleReceived(otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength)
|
void
Alınan TREL UDP paketini bildirmek üzere platformdan geri aramadır.
|
otPlatTrelRegisterService(otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength)
|
void
DNS-SD [RFC6763] kullanılarak reklamı yapılacak yeni bir hizmeti kaydeder.
|
otPlatTrelSend(otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr)
|
void
TREL UDP paketinin belirli bir hedefe gönderilmesini ister.
|
Yapılar |
|
---|---|
otPlatTrelPeerInfo |
"_trel._udp" hizmet adında DNS-SD göz atma kullanılarak keşfedilen bir TREL eş bilgisini temsil eder. |
Türdefler
otPlatTrelPeerInfo
struct otPlatTrelPeerInfo otPlatTrelPeerInfo
"_trel._udp" hizmet adında DNS-SD göz atma kullanılarak keşfedilen bir TREL eş bilgisini temsil eder.
İşlevler
otPlatTrelDisable
void otPlatTrelDisable( otInstance *aInstance )
TREL platform katmanını devre dışı bırakır.
Bu çağrıdan sonra, platform katmanının "_trel._udp" hizmet adında DNS-SD göz atmayı durdurması, TREL DNS-SD hizmetinin (otPlatTrelRegisterService()
kaynağından) reklamını durdurması ve TREL mesajlarını almak için kullanılan UDP soketini kapatması ZORUNLUDUR.
[in] aInstance OpenThread örneği.
otPlatTrelEnable
void otPlatTrelEnable( otInstance *aInstance, uint16_t *aUdpPort )
TREL platform katmanını başlatır ve etkinleştirir.
Bu çağrının ardından, platform katmanının aşağıdakileri gerçekleştirmesi ZORUNLUDUR:
1) TREL platform katmanının eşlerden gelen TREL mesajlarını dinlemek ve almak için bir UDP soketi açması ZORUNLUDUR. Yuva, platform katmanı tarafından seçilen geçici bir bağlantı noktası numarasına bağlıdır. Bağlantı noktası numarasının aUdpPort
içinde döndürülmesi ZORUNLUDUR. Yuva, TREL'in destekleneceği ağ arayüzlerine de bağlıdır. TREL etkinleştirildiğinde soket ve seçilen bağlantı noktası geçerli kalmalıdır.
2) Platform katmanı, TREL'i destekleyen diğer cihazları keşfetmek için yerel tarama alan adındaki "_trel._udp" hizmet adında devam eden bir DNS-SD göz atma işlemi başlatmalıdır. Devam eden göz atma işlemi iki farklı etkinlik türü oluşturur: "etkinlik ekleme" ve "kaldırma" etkinlikleri. Göz atma başlatıldığında, geçerli olarak ağda bulunan her TREL eşleme için bir "add" etkinliği oluşturur. Bir TREL eşi çevrimdışı olduğunda "remove" etkinliği oluşturulmalıdır. Ancak "remove" etkinlikleri garanti edilmez. Bir TREL hizmet örneği bulunduğunda, keşfedilen örneğin SRV kaydında belirtilen ana makine adında AAAA kaydı için devam eden yeni bir DNS-SD sorgusu başlatılmalıdır. Bir eş için birden fazla ana makine IPv6 adresi bulunursa tüm adresler arasında en yüksek kapsama sahip bir IP bildirilmelidir (aynı kapsamda birden fazla adres varsa rastgele bir adres seçilmelidir).
TREL platformu, otPlatTrelHandleDiscoveredPeerInfo()
geri çağırma işlevini kullanarak, bulunan benzerler bilgisini geri VERMELİDİR. Yeni bir eş keşfedildiğinde, mevcut bir girişte bir değişiklik olduğunda (ör. yeni TXT kaydı veya yeni bağlantı noktası numarası ya da yeni IPv6 adresi) ya da eş kaldırıldığında bu geri çağırmanın çağrılması ZORUNLUDUR.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
otPlatTrelHandleDiscoveredPeerInfo
void otPlatTrelHandleDiscoveredPeerInfo( otInstance *aInstance, const otPlatTrelPeerInfo *aInfo )
Bu, keşfedilen TREL benzer bilgilerini bildirmek için platform katmanından geri çağırma işlevidir.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
otPlatTrelHandleReceived
void otPlatTrelHandleReceived( otInstance *aInstance, uint8_t *aBuffer, uint16_t aLength )
Alınan TREL UDP paketini bildirmek üzere platformdan geri aramadır.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
otPlatTrelRegisterService
void otPlatTrelRegisterService( otInstance *aInstance, uint16_t aPort, const uint8_t *aTxtData, uint8_t aTxtLength )
DNS-SD [RFC6763] kullanılarak reklamı yapılacak yeni bir hizmeti kaydeder.
Hizmet adı: "_trel._udp". Platform, kendi ana makine adını kullanmalıdır. Bu ad, hizmet adı ve yerel DNS-SD alan adıyla birleştirildiğinde tam hizmet örneği adını oluşturur (ör. "example-host._trel._udp.local.").
Hizmet örneği adının göründüğü alan adı, mDNS için "yerel" olur. mDNS olmayan bir yerel DNS-SD hizmeti söz konusu olduğunda, hizmet kaydı için kullanılan alan adı olur.
Bu işleve yapılan sonraki bir çağrı, önceki hizmeti günceller. Bu numara, TXT kayıt verilerini ve/veya bağlantı noktası numarasını güncellemek için kullanılır.
aTxtData
arabelleği, bu işlevden dönüşten sonra devam ettirilmiyor. Platform katmanı, işaretçiyi TUTMAMALIDIR ve gerekirse içeriği kopyalamamalıdır.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
otPlatTrelSend
void otPlatTrelSend( otInstance *aInstance, const uint8_t *aUdpPayload, uint16_t aUdpPayloadLen, const otSockAddr *aDestSockAddr )
TREL UDP paketinin belirli bir hedefe gönderilmesini ister.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
Kaynaklar
OpenThread API Referans konuları, GitHub'da bulunan kaynak koddan gelir. Daha fazla bilgi edinmek veya dokümanlarımıza katkıda bulunmak için Kaynaklar bölümüne bakın.