bluez/mesh/remprv.h
Brian Gix f3243ecba0 mesh: Add Remote Provisioning
Add Remote Provisioning Server
Add Remote Provisioning Client
Remove local scanning/provisioning
Add delete-all dev key function
Add NPPI procedures
2023-01-30 16:14:41 -08:00

79 lines
2.7 KiB
C

/*
*
* BlueZ - Bluetooth protocol stack for Linux
*
* Copyright (C) 2023 Intel Corporation. All rights reserved.
*
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*/
#define REM_PROV_SRV_MODEL SET_ID(SIG_VENDOR, 0x0004)
#define REM_PROV_CLI_MODEL SET_ID(SIG_VENDOR, 0x0005)
#define PB_REMOTE_MAX_SCAN_QUEUE_SIZE 5
#define PB_REMOTE_STATE_IDLE 0x00
#define PB_REMOTE_STATE_LINK_OPENING 0x01
#define PB_REMOTE_STATE_LINK_ACTIVE 0x02
#define PB_REMOTE_STATE_OB_PKT_TX 0x03
#define PB_REMOTE_STATE_LINK_CLOSING 0x04
#define PB_REMOTE_TYPE_LOCAL 0x01
#define PB_REMOTE_TYPE_ADV 0x02
#define PB_REMOTE_TYPE_GATT 0x04
#define PB_REMOTE_SCAN_TYPE_NONE 0x00
#define PB_REMOTE_SCAN_TYPE_UNLIMITED 0x01
#define PB_REMOTE_SCAN_TYPE_LIMITED 0x02
#define PB_REMOTE_SCAN_TYPE_DETAILED 0x03
/* Remote Provisioning Opcode List */
#define OP_REM_PROV_SCAN_CAP_GET 0x804F
#define OP_REM_PROV_SCAN_CAP_STATUS 0x8050
#define OP_REM_PROV_SCAN_GET 0x8051
#define OP_REM_PROV_SCAN_START 0x8052
#define OP_REM_PROV_SCAN_STOP 0x8053
#define OP_REM_PROV_SCAN_STATUS 0x8054
#define OP_REM_PROV_SCAN_REPORT 0x8055
#define OP_REM_PROV_EXT_SCAN_START 0x8056
#define OP_REM_PROV_EXT_SCAN_REPORT 0x8057
#define OP_REM_PROV_LINK_GET 0x8058
#define OP_REM_PROV_LINK_OPEN 0x8059
#define OP_REM_PROV_LINK_CLOSE 0x805A
#define OP_REM_PROV_LINK_STATUS 0x805B
#define OP_REM_PROV_LINK_REPORT 0x805C
#define OP_REM_PROV_PDU_SEND 0x805D
#define OP_REM_PROV_PDU_OB_REPORT 0x805E
#define OP_REM_PROV_PDU_REPORT 0x805F
/* Remote Provisioning Errors */
#define PB_REM_ERR_SUCCESS 0x00
#define PB_REM_ERR_SCANNING_CANNOT_START 0x01
#define PB_REM_ERR_INVALID_STATE 0x02
#define PB_REM_ERR_LIMITED_RESOURCES 0x03
#define PB_REM_ERR_CANNOT_OPEN 0x04
#define PB_REM_ERR_OPEN_FAILED 0x05
#define PB_REM_ERR_CLOSED_BY_DEVICE 0x06
#define PB_REM_ERR_CLOSED_BY_SERVER 0x07
#define PB_REM_ERR_CLOSED_BY_CLIENT 0x08
#define PB_REM_ERR_CLOSED_CANNOT_RX_PDU 0x09
#define PB_REM_ERR_CLOSED_CANNOT_TX_PDU 0x0A
void remote_prov_server_init(struct mesh_node *node, uint8_t ele_idx);
void remote_prov_client_init(struct mesh_node *node, uint8_t ele_idx);
bool register_nppi_acceptor(mesh_prov_open_func_t open_cb,
mesh_prov_close_func_t close_cb,
mesh_prov_receive_func_t rx_cb,
mesh_prov_ack_func_t ack_cb,
void *user_data);