Gelişmiş Özellikleri Uygulama

Kaynağı GitHub'da göster

Bazı gelişmiş özellikler, hedef donanım platformunda desteklenip desteklenmediğine bağlı olarak isteğe bağlıdır.

Otomatik çerçeve beklemede

IEEE 802.15.4 iki türü arasındaki veri iletim yöntemlerini tanımlar: doğrudan iletim ve dolaylı iletim. Sonuncusu, öncelikli olarak sık sık uyuyan uykulu son cihazlar (SED'ler) için tasarlanmıştır. Sıraya alınan veriler için ebeveynden düzenli olarak anket yapar.

  • Doğrudan iletim: Ebeveyn, doğrudan son cihaza bir veri çerçevesi gönderir Doğrudan İletim

  • Dolaylı İletim: Ebeveyn, hedeflenen son cihazı tarafından istenene kadar verileri muhafazaya alır. Doğrudan İletim

Dolaylı olarak, alt uç cihazlar, öncelikle herhangi bir verinin mevcut olup olmadığının belirlenmesi için ebeveyn tarafından anket yapmalıdır. Bunu yapmak için alt yayıncı bir veri isteği gönderir. İstek, üst kuruluş tarafından onaylanır. Ardından üst cihaz, alt cihaz için herhangi bir verisi olup olmadığını belirler. Böyle bir durumda alt cihaza, veri alımını onaylayan bir veri paketi gönderir.

Radyo, giden SED'lere yapılan onaylarda Çerçevenin Beklemede bitinin dinamik olarak ayarlanmasını destekliyorsa sürücülerin, bu özelliği etkinleştirmek için kaynak adresi eşleşmesi API'sini uygulaması gerekir. OpenThread, Frame Beklemede bitini hangi SED'lerin ayarlayacağını radyoya bildirmek için bu API'yi kullanır.

Radyo, Çerçevenin Beklemede bitinin dinamik olarak ayarlanmasını desteklemiyorsa radyo, OT_ERROR_NOT_IMPLEMENTED değerini döndürmek için kaynak adresi eşleşmesi API'sini kullanabilir.

Radyo ile Enerji Taraması/Algılama

Enerji Taraması/Algılama özelliği, radyo çipinin seçilen kanallarda mevcut olan enerjiyi örneklemesini ve tespit edilen enerji değerini üst katmana döndürmesini gerektirir.

Bu özellik uygulanmazsa IEEE 802.15.4 MAC katmanı, kanaldaki mevcut enerji değerini değerlendirmek için bir İşaretçi İsteği/Yanıt paketi gönderir/alar.

Radyo çipi, Enerji Taraması/Algılama özelliğini destekliyorsa makroyu OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0 ayarlayarak yazılım enerjisi tarama mantığını devre dışı bıraktığınızdan emin olun.

mbedTLS için donanım hızlandırma

mbedTLS, kullanıcıların ana yapılandırma başlığı dosyasında (mbedtls-config.h) çeşitli AES'leri tanımlayarak kullanıcıların AES, SHA1, SHA2 ve diğer modüllerin alternatif uygulamalarını ve GF(p) modülü yerine Elips eğri eğrisi kriteri (ECC) için bağımsız işlevleri etkinleştirmelerini sağlar. Daha fazla bilgi için mbedTLS donanım hızlandırma sayfasına bakın.

OpenThread bu makroları etkinleştirmediğinden simetrik şifreleme algoritmaları, karma algoritmaları ve ECC işlevlerinin tümü varsayılan olarak yazılım uygulamalarını kullanır. Bu uygulamalar için önemli miktarda bellek ve işlemsel kaynak gerekir. En iyi performans ve daha iyi kullanıcı deneyimi için yukarıdaki işlemleri gerçekleştirmek üzere yazılım yerine donanım hızlandırmayı etkinleştirmenizi öneririz.

OpenThread içinde donanım hızlandırmayı etkinleştirmek için aşağıdaki mbedTLS yapılandırma başlığı dosyaları, platformun CMake dosyalarındaki ot-config derleme tanımlarına eklenmelidir:

  • OpenThread'da kullanılan tüm gerekli makroları tanımlayan ana yapılandırma: /openthread/third-party/mbedtls/mbedtls-config.h
  • Modüllerin ve işlevlerin alternatif uygulamalarını tanımlayan, kullanıcıya özel yapılandırma: src/platform-name-mbedtls-config.h

nrf52811.cmake örneği:

target_compile_definitions(ot-config INTERFACE
    "MBEDTLS_USER_CONFIG_FILE=\"nrf52811-mbedtls-config.h\""
)

mbedtls-config.h içinde yorumlanan makrolar zorunlu değildir ve donanım hızlandırma için kullanıcıya özel yapılandırma başlığı dosyasında etkinleştirilebilir.

Kullanıcıya özel tam bir yapılandırma için ot-efr32 ürünündeki mbedtls_config_autogen.h dosyasına bakın.

AES modülü

OpenThread Security, IEEE 802.15.4 veya MLE mesajlarını şifrelemek/şifrelerini çözmek için AES CCM (CBC-MAC ile sayaç) şifrelemesini uygular ve mesaj entegrasyon kodunu doğrular. Donanım hızlandırma, AES CCM temel işlevsel çağrısı için en azından temel AES ECB (Elektronik Kod Defteri Kitabı) modunu desteklemelidir.

Alternatif bir AES modülü uygulaması kullanmak için:

  1. Kullanıcıya özel mbedTLS yapılandırma başlığı dosyasında MBEDTLS_AES_ALT makrosunu tanımlayın
  2. aes_alt.h değişkeninin yolunu MBEDTLS_CPPFLAGS değişkenini kullanarak belirtin.

SHA256 modülü

OpenThread Güvenlik, ağ anahtarı yönetimi ve PSKc üretimi için karma değerini İş Parçacık Spesifikasyonuna göre hesaplamak üzere HMAC ve SHA256 karma algoritmalarını uygular.

Alternatif bir SHA256 modül uygulaması kullanmak için:

  1. Kullanıcıya özel mbedTLS yapılandırma başlığı dosyasında MBEDTLS_SHA256_ALT makrosunu tanımlayın
  2. sha256_alt.h değişkeninin yolunu MBEDTLS_CPPFLAGS değişkenini kullanarak belirtin.

ECC işlevleri

mbedTLS şu anda modülün tamamı yerine yalnızca ECC işlevlerinin bölümleri için donanım hızlandırmayı desteklediğinden, ECC noktası çarpımını hızlandırmak için path-to-mbedtls/library/ecp.c içinde tanımlanan bazı işlevleri uygulamayı seçebilirsiniz.

ECJPAKE taslağının anahtar değişimi algoritmasında eğri secp256r1 kullanılır. Bu nedenle donanım hızlandırma en az secp256r1 kısa Weeristrass eğri işlemini desteklemelidir. Örnek için SiLabs CRYPTO Donanım Hızlandırma ve mbedTLS konusuna bakın.