Gelişmiş Özellikleri Uygulama

Kaynağı GitHub'da görüntüleyin

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, üst ve alt ağlar arasında iki tür veri iletim yöntemi tanımlar: doğrudan iletim ve dolaylı iletim. İkincisi, çoğunlukla uyku vaktinin geldiği uykuya sahip cihazlar (SED'ler) için tasarlanmıştır. Bu cihazlar, sıraya alınmış veriler için üst öğeyi düzenli olarak uyandırmak amacıyla uyku modundan çıkar.

  • Doğrudan İletim - Üst kaynak, doğrudan son cihaza bir veri çerçevesi gönderir Doğrudan Aktarma

  • Dolaylı İletim - Üst yayıncı, verileri istediği son cihaz tarafından istenene kadar saklar Doğrudan Aktarma

Dolaylı vakada, alt uç cihazın, kullanılabilir veri olup olmadığını belirlemek için önce üst öğeyi sorgulaması gerekir. Bunu yapmak için alt öğe, verinin kabul edildiği bir veri isteği gönderir. Üst öğe, alt cihaza ait veri olup olmadığını belirler. bu durumda, alt cihaza veri paketi gönderen bir veri paketi gönderilir.

Radyo, SED'lere giden onaylarda Frame Pending bitini dinamik olarak ayarlamayı destekliyorsa sürücülerin bu özelliği etkinleştirmek için kaynak adres eşleşmesi API'sini uygulaması gerekir. OpenThread, bu radyo API'sini kullanarak radyoya SED'lerin Frame Pending bitini ayarlamasını bildirir.

Radyo, Frame Pending bit'inin dinamik olarak ayarlanmasını desteklemiyorsa radyo, kaynak değeri eşleştirmek için API'yi OT_ERROR_NOT_IMPLEMENTED döndürecek şekilde saptırabilir.

Radyoyla Enerji Tarama/Algılama

Enerji Tarama/Algılama özelliği, radyo çipinin seçilen kanallarda enerjiyi örneklendirmesini ve algılanan 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/alır.

Radyo çipi Enerji Tarama/Algılama'yı destekliyorsa OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0 makrosunu ayarlayarak yazılım enerji tarama mantığını devre dışı bıraktığınızdan emin olun.

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

mbedTLS, kullanıcıların AES, SHA1, SHA2 ve diğer modüllerin alternatif uygulamalarını etkinleştirmesine olanak tanımak için ana yapılandırma başlığı dosyasında (mbedtls-config.h) birkaç makro tanımlar. eliptik eğri kriptografisi (ECC) için GF(p) modülü üzerinden bağımsız işlevler. Daha fazla bilgi için mbedTLS donanım hızlandırma bölümüne bakın.

OpenThread bu makroları etkinleştirmediğinden, simetrik şifreleme algoritmaları, karma algoritmaları ve ECC işlevleri varsayılan olarak yazılım uygulamalarını kullanır. Bu uygulamalar önemli miktarda bellek ve bilgi işlem kaynağı gerektirir. Optimum performans ve daha iyi bir kullanıcı deneyimi için, yukarıdaki işlemleri uygulamak üzere yazılım yerine donanım hızlandırma özelliğini etkinleştirmenizi öneririz.

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

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

nrf52811.cmake sitesinden örnek:

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

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

Kullanıcıya özel yapılandırmanın tam bir örneği için ot-efr32 ürünündeki mbedtls_config_autogen.h dosyasını inceleyin.

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 en azından temel AES CCM çağrısı için AES ECB (Elektronik Kod Defteri) modunu desteklemelidir.

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

  1. Kullanıcıya özel mbedTLS yapılandırma başlık 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 Security, ağ anahtarı yönetimi ve PSKc oluşturma işlemi için Thread Spesifikasyonu'na göre hash değerini hesaplamak üzere HMAC ve SHA256 hash algoritmalarını uygular.

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

  1. Kullanıcıya özel mbedTLS yapılandırma başlık 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ı çoğaltmasını hızlandırmak için path-to-mbedtls/library/ecp.c öğesinde tanımlanan bazı işlevleri uygulamayı seçebilirsiniz.

ECJPAKE taslağının anahtar değişim algoritmasında secp256r1 kullanılır. Bu nedenle, donanım hızlandırma en azından secp256r1 kısa Weirstrass eğri işlemini desteklemelidir. Örnek için mbSTLS için SiLabs CRYPTO Donanım Hızlandırma bölümüne bakın.