Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

고급 기능 구현

GitHub에서 소스 보기

일부 고급 기능은 대상 하드웨어 플랫폼에서 지원되는지 여부에 따라 선택 사항입니다.

자동 프레임 보류 중

IEEE 802.15.4는 부모와 자식 간의 데이터 전송 방식을 직접 전송과 간접 전송으로 정의합니다. 후자는 주로 대기 중인 데이터에 대해 상위 항목을 폴링하기 위해 주기적으로 깨어나 대부분의 시간을 잠자는 SED(Sleepy End Device)용으로 설계되었습니다.

  • 직접 전송은 - 부모의 엔드 디바이스에 직접 데이터 프레임을 전송 직접 전송

  • 간접 전송 - 의도 된 최종 장치에 의해 요청 될 때까지 부모는 데이터를 보유 직접 전송

간접의 경우 자식 단말 장치는 먼저 부모를 폴링하여 데이터를 사용할 수 있는지 여부를 결정해야 합니다. 이를 위해 자식은 부모가 승인하는 데이터 요청을 보냅니다. 그런 다음 부모는 자식 장치에 대한 데이터가 있는지 여부를 결정합니다. 그렇다면 데이터 수신을 확인하는 하위 장치로 데이터 패킷을 보냅니다.

라디오가 지원하는 동적 진행중 SEDs가 나가는 승인에 비트 프레임을 설정하는 경우, 드라이버가 구현해야하는 소스 주소가 일치하는 이 기능을 사용하려면 API를. OpenThread는 이 API를 사용하여 프레임 보류 비트를 설정할 SED를 라디오에 알려줍니다.

라디오가 진행중 비트 프레임 설정을 동적으로 지원하지 않는 경우, 라디오는 반환 할 소스 주소 일치 API 밖으로 스텁 수 OT_ERROR_NOT_IMPLEMENTED .

라디오로 에너지 스캔/감지

에너지 스캔/감지 기능을 사용하려면 무선 칩이 선택한 채널에 표시되는 에너지를 샘플링하고 감지된 에너지 값을 상위 계층으로 반환해야 합니다.

이 기능이 구현되지 않은 경우 IEEE 802.15.4 MAC 계층은 채널의 현재 에너지 값을 평가하기 위해 Beacon Request/Response 패킷을 송수신합니다.

라디오 칩에서 지원하는 에너지 스캔 / 감지하면, 매크로 설정 해제 소프트웨어 에너지 스캔 논리에 확인 OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0 .

mbedTLS를 위한 하드웨어 가속

mbedTLS 여러 주요 구성 헤더 파일 매크로 정의 mbedtls-config.h GF 위에 타원 곡선 암호 시스템 (ECC)의 경우, 사용자는 AES, SHA1, SHA2의 다른 구현을 가능하게 할 수 있도록하고, 다른 모듈들뿐만 아니라, 개별 기능 (p) 모듈. 참조 mbedTLS 하드웨어 가속을 자세한 내용은.

OpenThread는 이러한 매크로를 활성화하지 않으므로 대칭 암호화 알고리즘, 해시 알고리즘 및 ECC 기능은 모두 기본적으로 소프트웨어 구현을 활용합니다. 이러한 구현에는 상당한 메모리와 계산 리소스가 필요합니다. 최적의 성능과 더 나은 사용자 경험을 위해 소프트웨어 대신 하드웨어 가속을 활성화하여 위의 작업을 구현하는 것이 좋습니다.

OpenThread 내에서 하드웨어 가속을 사용하려면 다음 mbedTLS 구성 헤더 파일을 추가해야합니다 ot-config 플랫폼의 CMake 파일의 컴파일 정의 :

  • 홈페이지 OpenThread에 사용 된 모든 필요한 매크로를 정의하는 구성 : /openthread/third-party/mbedtls/mbedtls-config.h
  • : 모듈과 기능의 대체 구현을 정의하고 사용자 별 구성, src/ platform-name -mbedtls-config.h

에서 예 nrf52811.cmake :

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

의 댓글 매크로 mbedtls-config.h 의무적으로하지 않고, 하드웨어 가속에 대한 사용자 별 구성 헤더 파일에 사용할 수 있습니다.

완전한 예를 들어 사용자 별 구성의 경우, 참조 mbedtls_config_autogen.h 에서 파일 ot-efr32 .

AES 모듈

OpenThread Security는 AES CCM(Counter with CBC-MAC) 암호화를 적용하여 IEEE 802.15.4 또는 MLE 메시지를 암호화/복호화하고 메시지 통합 코드를 검증합니다. 하드웨어 가속은 AES CCM 기본 기능 호출에 대해 최소한 기본 AES ECB(Electronic Codebook Book) 모드를 지원해야 합니다.

대체 AES 모듈 구현을 활용하려면:

  1. 정의 MBEDTLS_AES_ALT 사용자 별의 mbedTLS 구성 헤더 파일에 매크로를
  2. 의 경로를 나타냅니다 aes_alt.h 사용하여 파일 MBEDTLS_CPPFLAGS 변수를

SHA256 모듈

OpenThread Security는 HMAC 및 SHA256 해시 알고리즘을 적용하여 스레드 사양에 따라 네트워크 키 관리 및 PSKc 생성을 위한 해시 값을 계산합니다.

대체 기본 SHA256 모듈 구현을 활용하려면:

  1. 정의 MBEDTLS_SHA256_ALT 사용자 별의 mbedTLS 구성 헤더 파일에 매크로를
  2. 의 경로를 나타냅니다 sha256_alt.h 사용하여 파일 MBEDTLS_CPPFLAGS 변수를

ECC 기능

mbedTLS 때문에 현재는 ECC 기능의 일부에 대한 하드웨어 가속을 지원하지 않고 전체 모듈보다, 당신은에 정의 된 일부 기능을 구현하도록 선택할 수 있습니다 path-to-mbedtls /library/ecp.c ECC 점 곱셈을 가속화합니다.

곡선은 secp256r1의 키 교환 알고리즘에서 사용된다 ECJPAKE의 초안. 따라서 하드웨어 가속은 최소한 secp256r1 짧은 바이어슈트라스 곡선 작업을 지원해야 합니다. 참조 mbedTLS에 대한 SiLabs 암호화 하드웨어 가속 예를 들어.