Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

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, tùy thuộc vào việc các tính năng đó có được hỗ trợ trên nền tảng phần cứng mục tiêu hay không.

Khung tự động đang chờ xử lý

IEEE 802.15.4 xác định hai loại phương thức truyền dữ liệu giữa cha mẹ và con: truyền trực tiếp và truyền gián tiếp. Tính năng sau này được thiết kế chủ yếu dành cho các thiết bị kết thúc buồn ngủ (SED) ngủ hầu hết thời gian, định kỳ thức dậy để thăm dò ý kiến của cha mẹ đối với dữ liệu được đưa vào hàng đợi.

  • Truyền trực tiếp — cha mẹ gửi trực tiếp khung dữ liệu đến thiết bị cuối Truyền động trực tiếp

  • Phương thức truyền gián tiếp – cha mẹ lưu giữ dữ liệu cho đến khi thiết bị kết thúc dự định của ứng dụng yêu cầu Truyền động trực tiếp

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

Nếu radio hỗ trợ tự động đặt bit Đang chờ xử lý khung trong các thông báo xác nhận gửi đi tới SED, thì các trình điều khiển phải triển khai khớp địa chỉ nguồn để bật chức năng này. Openthread sử dụng API này để cho radio biết SED cần đặt Khung đang chờ xử lý của khung.

Nếu radio không hỗ trợ việc thiết lập linh động Khung đang chờ xử lý, thì hệ thống radio có thể trì hoãn 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 phát thanh

Tính năng Quét/Phát hiện năng lượng yêu cầu chip radio lấy mẫu năng lượng hiển thị trên các kênh đã 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, lớp MAC IEEE 802.15.4 sẽ gửi/nhận gói Yêu cầu/Phản hồi báo hiệu để đánh giá giá trị năng lượng hiện tại trên kênh.

Nếu chip radio hỗ trợ tính năng Quét năng lượng/Phát hiện năng lượng, hãy nhớ tắt logic quét năng lượng phần mềm 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 bật các biện pháp triển khai thay thế của AES, SHA1, SHA2 và các mô-đun khác, cũng như các hàm riêng lẻ cho mật mã đường cong elip (ECC) qua mô-đun GF(p). Hãy xem tính năng tăng tốc phần cứng của TLS để biết thêm thông tin.

OpenThread không bật các macro đó, do đó, các thuật toán mã hóa đối xứng, hàm thuật toán băm và hàm ECC đều sử dụng cách triển khai phần mềm theo mặc định. Những phương pháp triển khai này yêu cầu bộ nhớ đáng kể và các tài nguyên điện toán. Để có hiệu suất tối ưu và trải nghiệm người dùng tốt hơn, bạn nên bật tính năng tăng tốc phần cứng thay vì 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, bạn phải thêm các tệp tiêu đề cấu hình mbedTLS sau đây vào định nghĩa biên dịch ot-config trong các 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 dùng trong OpenThread: /openthread/third-party/mbedtls/mbedtls-config.h
  • Cấu hình dành riêng cho người dùng, giúp xác định cách triển khai thay thế cho các 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 nhận xét trong mbedtls-config.h là không bắt buộc và có thể 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.

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

Mô-đun AES

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

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

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

Mô-đun SHA256

OpenThread Security áp dụng thuật toán băm HMAC và SHA256 để tính toán giá trị băm cho việc quản lý khóa mạng và tạo PSKc theo Đặc tả chuỗi.

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 tệp tiêu đề cấu hình mbedTLS riêng cho người dùng
  2. Cho biết đường dẫn của tệp sha256_alt.h bằng cách sử dụng biến MBEDTLS_CPPFLAGS

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 chức năng ECC, thay vì toàn bộ mô-đun, nên 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 tính năng nhân ECC.

Đường cong secp256r1 được dùng trong thuật toán trao đổi khóa của bản nháp ECJPAKE. Do đó, tính năng tăng tốc phần cứng ít nhất phải hỗ trợ hoạt động đường cong ngắn của secp256r1. Xem SiLabs CRYPTO hardware Acceleration dành cho mbedTLS để xem ví dụ.