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

고급 기능 구현

GitHub에서 소스 보기

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

자동 프레임 대기 중

IEEE 802.15.4는 직접 전송과 간접 전송의 두 가지 데이터 전송 방법(상위 요소 및 하위 요소)을 정의합니다. 후자는 주로 잠자는 대부분의 최종 절전 모드 기기 (SED)를 위해 설계되었으며, 주기적으로 대기 중인 데이터에 관해 상위 요소에 폴링합니다.

  • 직접 전송 - 상위 요소가 데이터 프레임을 최종 기기로 직접 전송합니다. 직접 전송

  • 간접 전송 — 의도된 최종 기기에서 요청할 때까지 상위 데이터가 데이터를 보관합니다. 직접 전송

간접 사례의 경우 하위 최종 기기는 먼저 상위 요소를 폴링하여 사용 가능한 데이터가 있는지 확인해야 합니다. 이를 위해 하위 요소는 데이터 요청을 전송하고, 상위 요소는 이를 확인합니다. 그런 다음 부모는 하위 기기에 관한 데이터가 있는지 판단합니다. 있는 경우 데이터 수신을 확인하는 하위 기기로 데이터 패킷을 전송합니다.

라디오가 SED로 나가는 승인에서 프레임 대기 비트 설정을 동적으로 지원하는 경우 드라이버는 소스 주소 일치 API를 구현하여 이 기능을 사용 설정해야 합니다. OpenThread는 이 API를 사용하여 프레임 대기 비트를 설정할 SED를 라디오에 알립니다.

라디오에서 Frame Pending 비트의 동적 설정을 지원하지 않으면 라디오는 OT_ERROR_NOT_IMPLEMENTED를 반환하기 위해 소스 주소 일치 API를 스 처리할 수 있습니다.

무선으로 에너지 스캔/감지

에너지 스캔/감지 기능을 사용하려면 무선 칩에서 선택된 채널에 존재하는 에너지를 샘플링하고 감지된 에너지 값을 상위 레이어에 반환해야 합니다.

이 기능이 구현되지 않은 경우 IEEE 802.15.4 MAC 레이어는 비콘 요청/응답 패킷을 전송/수신하여 채널의 현재 에너지 값을 평가합니다.

라디오 칩에서 에너지 스캔/감지 기능을 지원하는 경우 매크로 OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0를 설정하여 소프트웨어 에너지 스캔 로직을 사용 중지해야 합니다.

mbedTLS의 하드웨어 가속

mbedTLS는 기본 구성 헤더 파일 mbedtls-config.h에 여러 매크로를 정의하여 사용자가 AES, SHA1, SHA2 및 기타 모듈의 대체 구현을 사용 설정할 수 있도록 합니다. GF (p) 모듈을 통한 타원 곡선 암호화(ECC)의 개별 함수도 포함됩니다. 자세한 내용은 mbedTLS 하드웨어 가속을 참조하세요.

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

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

nrf52811.cmake의 예는 다음과 같습니다.

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

mbedtls-config.h의 주석 처리된 매크로는 필수가 아니며 하드웨어 가속을 위해 사용자별 구성 헤더 파일에서 사용 설정할 수 있습니다.

사용자별 구성의 전체 예시는 ot-efr32mbedtls_config_autogen.h 파일을 참조하세요.

AES 모듈

OpenThread Security는 AES CCM (CBC-MAC을 사용한 카운터) 암호화를 적용하여 IEEE 802.15.4 또는 MLE 메시지를 암호화/복호화하고 메시지 통합 코드를 검증합니다. 하드웨어 가속은 최소한 AES CCM 기본 기능 호출을 위한 기본 AES ECB(전자 코드북) 모드를 지원해야 합니다.

대체 AES 모듈 구현을 활용하려면 다음 단계를 따르세요.

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

SHA256 모듈

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

대체 기본 SHA256 모듈 구현을 활용하려면 다음과 같이 합니다.

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

ECC 함수

현재 mbedTLS는 전체 모듈이 아닌 ECC 함수의 일부에 하드웨어 가속만 지원하므로 path-to-mbedtls/library/ecp.c에 정의된 일부 함수를 구현하여 ECC 포인트 곱셈을 가속화할 수 있습니다.

Curve secp256r1은 ECJPAKE 초안의 키 교환 알고리즘에 사용됩니다. 따라서 하드웨어 가속은 최소한 secp256r1 짧은 Weierstrass 곡선 작업을 지원해야 합니다. 예는 mbedTLS용 SiLabs CRYPTO 하드웨어 가속을 참조하세요.