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.
Trang này được dịch bởi Cloud Translation API.
Switch to English

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à tùy chọn, tùy thuộc vào việc chú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 định nghĩa hai loại phương thức truyền dữ liệu giữa cha và con: truyền trực tiếp và truyền gián tiếp. Loại thứ hai được thiết kế chủ yếu dành cho các thiết bị đầu cuối buồn ngủ (SED) thường ngủ, thường thức dậy để thăm dò ý kiến ​​của phụ huynh về dữ liệu được xếp hàng đợi.

  • Truyền trực tiếp - cha gửi một 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 - dữ liệu gốc giữ dữ liệu cho đến khi thiết bị cuối dự định của nó 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ị đầu cuối con phải thăm dò ý kiến ​​của phụ huynh để xác định xem có sẵn dữ liệu nào cho nó hay không. Để làm điều này, đứa trẻ sẽ gửi một yêu cầu dữ liệu, yêu cầu này được cha mẹ thừa nhận. Sau đó, cha mẹ xác định xem nó có bất kỳ dữ liệu nào cho thiết bị con hay không; nếu vậy, nó sẽ gửi một gói dữ liệu đến thiết bị con, gói dữ liệu này xác nhận đã nhận dữ liệu.

Nếu radio hỗ trợ thiết lập động bit Frame Pending trong các thông báo gửi đi tới SED, trình điều khiển phải triển khai API đối sánh địa chỉ nguồn để kích hoạt khả năng này. OpenThread sử dụng API này để cho đài phát thanh biết SEDs nào để đặt bit Frame Pending.

Nếu đài không hỗ trợ thiết lập động bit Frame Pending, đài có thể khai báo API đối sánh đị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 hiện diện trên các kênh đã chọn và trả lại giá trị năng lượng được phát hiện cho lớp trên.

Nếu tính năng này không được thực hiện, lớp MAC của IEEE 802.15.4 sẽ gửi / nhận gói Beacon Request / Response để đánh giá giá trị năng lượng hiện tại trên kênh.

Nếu chip vô tuyến hỗ trợ Quét / Phát hiện Năng lượng, hãy đảm bảo 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 cho phép triển khai thay thế AES, SHA1, SHA2 và các mô-đun khác, cũng như các chức năng riêng lẻ cho mật mã đường cong Elliptic (ECC) trên GF (p) mô-đun. Xemphần tăng tốc phần cứng mbedTLS để biết thêm thông tin.

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

Để kích hoạt tăng tốc phần cứng trong OpenThread, các tệp tiêu đề cấu hình mbedTLS sau phải được thêm vào các cờ tùy chọn biên dịch trong Makefile của ví dụ 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, xác định cách triển khai thay thế của các mô-đun và chức năng: /openthread/examples/platforms/ platform-name /crypto/ platform-name -mbedtls-config.h

Thí dụ:

EFR32_MBEDTLS_CPPFLAGS  = -DMBEDTLS_CONFIG_FILE='\"mbedtls-config.h\"'
EFR32_MBEDTLS_CPPFLAGS += -DMBEDTLS_USER_CONFIG_FILE='\"efr32-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ó cấu hình hoàn chỉnh cho người dùng cụ thể, hãy xem tệp mbedtls_config_autogen.h .

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ã các tin nhắn IEEE 802.15.4 hoặc MLE và xác thực mã tích hợp tin nhắn. 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.

Để sử dụng 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 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 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 chính và tạo PSKc theo Đặc điểm kỹ thuật chủ đề.

Để sử dụng 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 dành riêng cho người dùng
  2. Chỉ ra đường dẫn của tệp sha256_alt.h bằng biến MBEDTLS_CPPFLAGS

Các chức năng 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, bạn có thể chọn triển khai một số chức năng được xác định trong path-to-mbedtls /library/ecp.c để tăng tốc nhân điểm ECC.

Đường cong secp256r1 được sử dụng trong thuật toán trao đổi khóa của dự thảo ECJPAKE . Do đó, khả năng tăng tốc phần cứng ít nhất phải hỗ trợ hoạt động đường cong weierstrass ngắn secp256r1. Xem SiLabs CRYPTO Hardware Acceleration cho mbedTLS để làm ví dụ.