connectivity/bluetooth/api/mesh/proxy.html · connectivity/bluetooth/api/mesh/proxy.rst 공식 원문 ↗

Zephyr 3.7.0 · Connectivity · Bluetooth Mesh

Bluetooth Mesh Proxy

Legacy GATT device를 Mesh에 연결하고 private identity와 solicitation으로 privacy를 유지합니다.

Official pathconnectivity/bluetooth/api/mesh/proxy.html
Source fileconnectivity/bluetooth/api/mesh/proxy.rst
Source versionZephyr 3.7.0
TranslationFull · reviewed

본문 기준: Zephyr 3.7.0 LTS3 · 이후 유지보수 패치는 별도입니다.

Part 1

요약·해설

Proxy identity type, Solicitation PDU, SSEQ·SSRC 기반 SRPL과 on-demand advertisement를 설명합니다.

Access

GATT

Identity

Network · Node · Private

Solicitation

Network-key PDU

Replay

SRPL

Part 2

접을 수 있는 영어 원문 전체

영어 원문 전체 펼치기
원문 SHA-256 E5D84A4C53AB641C3BB42B06DE6995BA72B172818705244047AA72F8951C6C21
.. _bt_mesh_proxy:

Proxy
#####

The Proxy feature allows legacy devices like phones to access the Bluetooth Mesh network through
GATT. The Proxy feature is only compiled in if the :kconfig:option:`CONFIG_BT_MESH_GATT_PROXY`
option is set. The Proxy feature state is controlled by the :ref:`bluetooth_mesh_models_cfg_srv`,
and the initial value can be set with :c:member:`bt_mesh_cfg_srv.gatt_proxy`.

Nodes with the Proxy feature enabled can advertise with Network Identity and Node Identity,
which is controlled by the :ref:`bluetooth_mesh_models_cfg_cli`.

The GATT Proxy state indicates if the Proxy feature is supported.

Private Proxy
*************

A node supporting the Proxy feature and the :ref:`bluetooth_mesh_models_priv_beacon_srv` model can
advertise with Private Network Identity and Private Node Identity types, which is controlled by the
:ref:`bluetooth_mesh_models_priv_beacon_cli`. By advertising with this set of identification types,
the node allows the legacy device to connect to the network over GATT while maintaining the
privacy of the network.

The Private GATT Proxy state indicates whether the Private Proxy functionality is supported.

Proxy Solicitation
******************

In the case where both GATT Proxy and Private GATT Proxy states are disabled on a node, a legacy
device cannot connect to it. A node supporting the :ref:`bluetooth_mesh_od_srv` may however be
solicited to advertise connectable advertising events without enabling the Private GATT Proxy state.
To solicit the node, the legacy device can send a Solicitation PDU by calling the
:func:`bt_mesh_proxy_solicit` function.  To enable this feature, the device must to be compiled with
the :kconfig:option:`CONFIG_BT_MESH_PROXY_SOLICITATION` option set.

Solicitation PDUs are non-mesh, non-connectable, undirected advertising messages containing Proxy
Solicitation UUID, encrypted with the network key of the subnet that the legacy device wants to
connect to. The PDU contains the source address of the legacy device and a sequence number. The
sequence number is maintained by the legacy device and is incremented for every new Solicitation PDU
sent.

Each node supporting the Solicitation PDU reception holds its own Solicitation Replay Protection
List (SRPL).  The SRPL protects the solicitation mechanism from replay attacks by storing
solicitation sequence number (SSEQ) and solicitation source (SSRC) pairs of valid Solicitation PDUs
processed by the node. The delay between updating the SRPL and storing the change to the persistent
storage is defined by :kconfig:option:`CONFIG_BT_MESH_RPL_STORE_TIMEOUT`.

The Solicitation PDU RPL Configuration models, :ref:`bluetooth_mesh_srpl_cli` and
:ref:`bluetooth_mesh_srpl_srv`, provide the functionality of saving and clearing SRPL entries.  A
node that supports the Solicitation PDU RPL Configuration Client model can clear a section of the
SRPL on the target by calling the :func:`bt_mesh_sol_pdu_rpl_clear` function.  Communication between
the Solicitation PDU RPL Configuration Client and Server is encrypted using the application key,
therefore, the Solicitation PDU RPL Configuration Client can be instantiated on any device in the
network.

When the node receives the Solicitation PDU and successfully authenticates it, it will start
advertising connectable advertisements with the Private Network Identity type. The duration of the
advertisement can be configured by the On-Demand Private Proxy Client model.

API reference
*************

.. doxygengroup:: bt_mesh_proxy

Part 3

한국어 전문 번역

Proxy

Proxy feature는 phone 같은 legacy device가 GATT를 통해 Bluetooth Mesh network에 접근하게 합니다. CONFIG_BT_MESH_GATT_PROXY가 설정된 경우에만 compile됩니다.

Configuration Server가 Proxy feature state를 제어하고 bt_mesh_cfg_srv.gatt_proxy로 초기값을 정할 수 있습니다. Proxy가 활성화된 node는 Configuration Client 제어에 따라 Network Identity와 Node Identity로 advertise할 수 있습니다. GATT Proxy state는 Proxy feature 지원 여부를 나타냅니다.

Private Proxy

Proxy와 Private Beacon Server를 지원하는 node는 Private Beacon Client 제어에 따라 Private Network Identity와 Private Node Identity type으로 advertise할 수 있습니다. Legacy device의 GATT 연결을 허용하면서 network privacy를 유지합니다.

Private GATT Proxy state는 Private Proxy 기능 지원 여부를 나타냅니다.

Proxy Solicitation

GATT Proxy와 Private GATT Proxy state가 모두 disabled면 legacy device가 node에 연결할 수 없습니다. 그러나 On-Demand Private Proxy Server를 지원하는 node에는 Private GATT Proxy state를 켜지 않고도 connectable advertising을 요청할 수 있습니다.

Legacy device가 bt_mesh_proxy_solicit으로 Solicitation PDU를 보내 node를 solicit합니다. CONFIG_BT_MESH_PROXY_SOLICITATION을 설정해 compile해야 합니다.

Solicitation PDU

Non-mesh, non-connectable, undirected advertising message입니다. Proxy Solicitation UUID를 담고 legacy device가 연결하려는 subnet의 network key로 encryption합니다.

PDU에는 legacy device source address와 sequence number가 들어갑니다. Sequence number는 legacy device가 관리하고 새 Solicitation PDU를 보낼 때마다 증가시킵니다.

Solicitation Replay Protection List

Solicitation PDU 수신을 지원하는 node마다 자체 SRPL을 가집니다. 처리한 유효 PDU의 solicitation sequence number(SSEQ)와 solicitation source(SSRC) pair를 저장해 replay attack을 막습니다. SRPL 변경을 persistent storage에 저장하기까지의 delay는 CONFIG_BT_MESH_RPL_STORE_TIMEOUT으로 정합니다.

Solicitation PDU RPL Configuration Client·Server model은 SRPL entry 저장과 삭제 기능을 제공합니다. Client를 지원하는 node는 bt_mesh_sol_pdu_rpl_clear로 Target SRPL의 일부를 지울 수 있습니다.

Client·Server 통신은 application key로 encryption하므로 SRPL Configuration Client는 network의 어느 device에나 instance화할 수 있습니다.

Node가 Solicitation PDU를 받고 authentication에 성공하면 Private Network Identity type의 connectable advertisement를 시작합니다. Advertisement duration은 On-Demand Private Proxy Client model로 구성합니다.

API Reference

공식 bt_mesh_proxy Doxygen group이 GATT Proxy와 solicitation API를 생성합니다.

Source

출처

영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.