Provisionning protocol —— PDUs

Provisionning PDUs

配置PDUs是供应者和设备之间相互交流的数据格式,它在通用供应层进行传输。
配置PDU的第一个字节是类型控制,定义PUD参数的格式。
格式定义如下:

控制域 大小(bits) 描述
固定值 2 0b00
类型 6 定义PDU类型
参数 有效值 参数信息

Provisionning protocol —— PDUs
PUD类型:

类型 名称 描述
0x00 配置邀请 邀请设备加入mesh网络
0x01 配置能力 指示设备的相应能力
0x02 配置开始 基于设备的能力,供应者选择合适的方法开始整个过程
0x03 配置公共** 包含设备或者供应者的公工**
0x04 配置输入完成 指示用户完成输入
0x05 配置确认 供应者或设备回复一个确认值
0x06 配置随机 设备或供应者的配置随机值
0x07 配置数据 包含每个元素的单播地址,网络**,网络**索引,标志和IV索引
0x08 配置完成 指示配置过程完成
0x09 配置失败 指示配置过程失败
其他值 RFU 保留

Provisioning Invite(0x00)

供应者发送该PDU邀请设备加入网络,开始配置过程。参数的格式定义如下:

Field Size(octets) Notes
Attention Duration 1 Attention Timer state

Provisioning capabilities(0x01)

设备发送该PDU给供应者,来指示它支持的配置能力。参数格式如下:

Field Size(octets) Notes
Number of Elements 1 设备支持的元素个数
Algorithms 2 指出的算法和其他能力
Public Key Type 1 支持的公钥类型
Static OOB Type 1 支持的静态OOB类型
Output OOB Size 1 支持的最大OOB数
Output OOB Action 2 支持的输出OOB动作
Input OOB Size 1 支持输入OOB的最大字节数
Input OOB Action 2 支持的输入OOB操作

Provisioning start(0x02)

预配器发送此PDU,以指示其已从预配功能PDU中选择相应方法并开始配置。参数格式如下:

Field Size(octets) Notes
Algorithm 1 用于配置的算法
Public Key 1 使用的公钥
Authentication Method 1 使用的验证方法
Authentication Action 1 选择的输入00B操作,输出OOB操作,或者0x00
Authentication Size 1 使用的输出OOB的大小或使用的输入OOB的大小或0x00

Provisioning public key(0x03)

供应者发送此PDU,以传递要在ECDH计算中使用的公钥。参数格式如下:

Field Size(octets) Notes
Public Key X 32 The X component of public key for the FIPS P-256 algorithm
Public Key Y 32 The Y component of public key for the FIPS P-256 algorithm

Provisioning Input complete(0x04)

当用户完成输入操作后,设备发送该PDU,无额外参数。

Provisioning confirmation(0x05)

供应者或设备发送该PDU给对端设备,来确认目前交换的OOB验证值。参数格式如下:

Field Size(octets) Notes
confirmation 16 目前为止交换的OOB验证值

Provisioning random(0x06)

供应者或设备发送该PDU来进一步验证确认。参数格式如下:

Field Size(octets) Notes
random 16 确认的最终输入

Provisioning data(0x07)

供应者通过该PDU发送配置数据给设备。参数格式如下:

Field Size(octets) Notes
Encrypted Provisioning Data 25 包含加密验证过的网络**,**索引,**刷新标志,IV更新标志,当前IV索引和元素单播地址
Provisioning Data MIC 8 PDU完整性检查

Provisioning complete(0x08)

设备发送此PDU表示它已成功接收并处理了配置数据。

Provisioning failed(0x09)

如果设备无法处理收到的配置协议PDU,则发送该PDU。参数格式如下:

Field Size(octets) Notes
error code 1 配置协议中的特定错误

Error Code:

Value Name Description
0x00 Prohibited 禁用
0x01 Invalid PDU 设备无法识别配置协议PDU
0x02 Invalid Format 协议PDU的参数超出预期值,或者PDU的长度与预期值不同
0x03 Unexpected PDU 在此过程,预计不会收到收到的PDU
0x04 Confirmation Failed 确认值未成功验证
0x05 Out of Resources 由于设备中资源不足,无法继续执行供应协议
0x06 Decryption Failed 数据块未成功解密
0x07 Unexpected Error 意外错误
0x08 Cannot Assign Addresses 无法给元素分配单播地址

最后附图
Provisionning protocol —— PDUs