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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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 phương thức mẹ và con: truyền trực tiếp và truyền gián tiếp. Thiết bị sau được thiết kế chủ yếu cho các thiết bị cuối buồn ngủ (SED) có chế độ ngủ hầu hết thời gian, định kỳ thức dậy để thăm dò ý kiến của cha mẹ về dữ liệu trong hàng đợi.

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

  • Truyền tải gián tiếp — mạng mẹ sẽ lưu giữ dữ liệu cho đến khi được thiết bị cuối dự định 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ị 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 cho thiết bị hay không. Để làm việc này, nhà xuất bản con gửi một yêu cầu dữ liệu mà cha mẹ xác nhận. Sau đó, mẹ sẽ xác định xem thiết bị đó có bất kỳ dữ liệu nào không; nếu có, SDK sẽ gửi một gói dữ liệu đến thiết bị con để xác nhận việc đã nhận được dữ liệu.

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

Nếu đài không hỗ trợ việc tự động đặt bit Đang chờ xử lý khung, thì đài này có thể sẽ giữ nguyê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 radio

Tính năng Quét/Phát hiện năng lượng yêu cầu chip vô tuyến để lấy mẫu năng lượng xuất hiện trên các kênh đã chọn và trả lại 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, gói MAC IEEE 802.15.4 sẽ gửi/nhận gói Yêu cầu báo hiệu/Phản hồi để đá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/Phát hiện năng lượng, hãy nhớ tắt logic quét năng lượng của 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 triển khai các chức năng triển khai thay thế của mã hóa AES, SHA1, SHA2 và các mô-đun khác, cũng như các chức năng riêng lẻ cho mô-đun mã hóa đường cong Elliptic (ECC) qua mô-đun GF(p). Xem tăng tốc phần cứng mbedTLS để biết thêm thông tin.

OpenThread không bật những macro đó, do đó các thuật toán mật mã đối xứng, 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 cách triển khai này yêu cầu tài nguyên tính toán và bộ nhớ đáng kể. Để 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, những tệp tiêu đề cấu hình mbedTLS sau đây cần được thêm vào định nghĩa biên dịch ot-config 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 sử 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ác phương thức 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à bạn có thể bật macro 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ề người dùng cụ thể, 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 có 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 cơ bản (Sách mã điện tử) cho cuộc gọi chức năng cơ bản AES CCM.

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

  1. Xác định macro MBEDTLS_AES_ALT trong tệp tiêu đề mbedTLS dành 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 các thuật toán băm HMAC và SHA256 để tính toán giá trị băm cho việc quản lý khoá mạng và việc tạo PSKc theo quy cách Đặc điểm.

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

  1. Xác định macro MBEDTLS_SHA256_ALT trong tệp tiêu đề mbedTLS dành 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 hàm 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 độ nhân điểm 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 uốn cong ngắn của phiên bản 256r1. Hãy xem bài viết SiLabs CRYPTO tăng tốc cho mbedTLS để biết ví dụ.