Triển khai các tính năng nâng cao

Xem nguồn trên GitHub

Một số tính năng nâng cao là không bắt buộc, tuỳ thuộc vào việc chúng có được cung cấp hay không được hỗ trợ trên nền tảng phần cứng mục tiêu.

Đang chờ xử lý tính năng tự động lấy khung hình

IEEE 802.15.4 định nghĩa hai loại phương thức truyền dữ liệu giữa mẹ và con con: truyền trực tiếp và truyền gián tiếp. Chính sách sau được thiết kế chủ yếu dành cho các thiết bị cuối (SED) thường ngủ, định kỳ đánh thức để thăm dò dữ liệu gốc về dữ liệu được đưa vào hàng đợi.

  • Truyền trực tiếp – thành phần mẹ gửi khung dữ liệu trực tiếp đến thiết bị cuối Truyền trực tiếp

  • Truyền gián tiếp – phần tử mẹ giữ dữ liệu cho đến khi thiết bị cuối dự định yêu cầu Truyền trực tiếp

Trong trường hợp Gián tiếp, trước tiên, thiết bị cuối của con phải thăm dò ý kiến của cha mẹ để xác định xem có dữ liệu nào hay không. Để thực hiện việc này, trẻ sẽ gửi một dữ liệu mà cha mẹ xác nhận. Sau đó, phần tử mẹ sẽ xác định xem có bất kỳ dữ liệu nào về thiết bị của con; nếu có thì nó sẽ gửi một gói dữ liệu đến thành phần con xác nhận đã nhận được dữ liệu.

Nếu đài hỗ trợ cài đặt động bit đang chờ xử lý khung trong thư đi với SED, người lái xe phải triển khai so khớp địa chỉ nguồn API để bật tính năng này. OpenThread sử dụng API này để báo cho đài phát thanh biết SED cần đặt bit đang chờ xử lý khung.

Nếu đài không hỗ trợ cài đặt động bit đang chờ xử lý khung, đài có thể tìm ra API so khớp địa chỉ nguồn để trả về OT_ERROR_NOT_IMPLEMENTED.

Quét/Phát hiện năng lượng bằng đài

Tính năng Quét/Phát hiện năng lượng cần chip radio để lấy mẫu năng lượng trình bày trên các kênh được chọn và trả về giá trị năng lượng đã phát hiện cho lớp trên.

Nếu tính năng này không được triển khai, tầng MAC của IEEE 802.15.4 gửi/nhận gói Báo hiệu Yêu cầu/Phản hồi để đánh giá dòng điện giá trị năng lượng trên kênh.

Nếu khối radio hỗ trợ tính năng Quét/Phát hiện năng lượng, hãy nhớ tắt phần mềm logic quét năng lượng bằng cách đặt macro OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0.

Tăng tốc phần cứng cho mbedTLS

mbedTLS xác định một số macro trong tệp tiêu đề cấu hình chính, mbedtls-config.h! để cho phép người dùng cho phép các phương pháp triển khai thay thế AES, SHA1, SHA2 và các mô-đun khác, cũng như các hàm riêng cho đường cong Elip mật mã học (ECC) trên mô-đun GF(p). Xem tăng tốc phần cứng mbedTLS để biết thêm thông tin.

OpenThread không cho phép các macro đó, do đó, tiền mã hóa đối xứng thuật toán, thuật toán băm và hàm ECC đều sử dụng phần mềm triển khai theo mặc định. Những cách triển khai này đòi hỏi bộ nhớ đáng kể và tài nguyên điện toán. Để có hiệu suất tối ưu và người dùng có trải nghiệm tốt hơn Do đó, bạn nên bật chế độ tăng tốc phần cứng thay vì tăng tốc phần mềm để triển khai các thao tác trên.

Để bật tính năng tăng tốc phần cứng trong OpenThread, hãy sử dụng mbedTLS sau tệp tiêu đề cấu hình nên được thêm vào quá trình biên dịch ot-config định nghĩa trong tệp CMake của nền tảng:

  • Cấu hình chính xác định tất cả các macro cần thiết được dùng trong OpenThread: /openthread/third-party/mbedtls/mbedtls-config.h
  • Cấu hình dành riêng cho người dùng, xác định các cách triển khai thay thế của mô-đun và hàm: src/platform-name-mbedtls-config.h

Ví dụ từ nrf52811.cmake:

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

Các macro được nhận xét trong mbedtls-config.h là không bắt buộc và có thể được bật trong tệp tiêu đề cấu hình dành riêng cho người dùng để tăng tốc phần cứng.

Để có ví dụ đầy đủ về cấu hình dành riêng cho người dùng, hãy xem mbedtls_config_autogen.h trong ot-efr32.

Mô-đun AES

OpenThread Security áp dụng mã hoá AES CCM (Counter with CBC-MAC) cho mã hoá/giải mã tin nhắn IEEE 802.15.4 hoặc MLE và xác thực tin nhắn mã tích hợp. Tính năng tăng tốc phần cứng tối thiểu phải hỗ trợ AES ECB cơ bản Chế độ (Sách mã hoá điện tử) cho lệnh gọi chức năng cơ bản AES CCM.

Cách triển khai mô-đun AES thay thế:

  1. Xác định macro MBEDTLS_AES_ALT trong mbedTLS dành riêng cho người dùng tệp tiêu đề cấu hình
  2. Chỉ ra đường dẫn của tệp aes_alt.h bằng MBEDTLS_CPPFLAGS biến

Mô-đun SHA256

OpenThread Security áp dụng các thuật toán băm HMAC và SHA256 để tính toán giá trị băm để quản lý khoá mạng và tạo PSKc theo Thread Thông số kỹ thuật.

Cách sử dụng phương thức triển khai mô-đun SHA256 cơ bản thay thế:

  1. Xác định macro MBEDTLS_SHA256_ALT trong mbedTLS dành riêng cho người dùng tệp tiêu đề cấu hình
  2. Chỉ ra đường dẫn của tệp sha256_alt.h bằng MBEDTLS_CPPFLAGS biến

Các hàm ECC

Vì mbedTLS hiện chỉ hỗ trợ tăng tốc phần cứng cho các phần của ECC thay vì toàn bộ mô-đun, bạn có thể chọn triển khai một số hàm được xác định trong path-to-mbedtls/library/ecp.c để tăng tốc độ ECC phép nhân điểm.

Đường cong secp256r1 được sử dụng trong thuật toán trao đổi khoá của ECJPAKE. Do đó, Tăng tốc phần cứng tối thiểu phải hỗ trợ độ trễ ngắn secp256r1 phép toán đường cong. Xem phần Tăng tốc phần cứng CRYPTO của SiLabs cho mbedTLS để xem ví dụ.