| /** |
| **************************************************************************************** |
| * |
| * @file co_lmp.h |
| * |
| * @brief This file contains the HCI Bluetooth defines, enumerations and structures |
| * definitions for use by all modules in RW stack. |
| * |
| * Copyright (C) RivieraWaves 2009-2015 |
| * |
| **************************************************************************************** |
| */ |
| |
| #ifndef CO_LMP_H_ |
| #define CO_LMP_H_ |
| |
| /** |
| **************************************************************************************** |
| * @addtogroup CO_BT |
| * @{ |
| **************************************************************************************** |
| */ |
| |
| |
| /* |
| * INCLUDE FILES |
| **************************************************************************************** |
| */ |
| #include "co_bt.h" |
| /* |
| * DEFINES |
| **************************************************************************************** |
| */ |
| |
| /// LMP Opcodes |
| /*@TRACE*/ |
| enum co_lmp_opcode |
| { |
| LMP_NAME_REQ_OPCODE = 1 , |
| LMP_NAME_RES_OPCODE = 2 , |
| LMP_ACCEPTED_OPCODE = 3 , |
| LMP_NOT_ACCEPTED_OPCODE = 4 , |
| LMP_CLK_OFF_REQ_OPCODE = 5 , |
| LMP_CLK_OFF_RES_OPCODE = 6 , |
| LMP_DETACH_OPCODE = 7 , |
| LMP_INRAND_OPCODE = 8 , |
| LMP_COMBKEY_OPCODE = 9 , |
| LMP_UNITKEY_OPCODE = 10 , |
| LMP_AURAND_OPCODE = 11 , |
| LMP_SRES_OPCODE = 12 , |
| LMP_TEMPRAND_OPCODE = 13 , |
| LMP_TEMPKEY_OPCODE = 14 , |
| LMP_ENC_MODE_REQ_OPCODE = 15 , |
| LMP_ENC_KEY_SIZE_REQ_OPCODE = 16 , |
| LMP_START_ENC_REQ_OPCODE = 17 , |
| LMP_STOP_ENC_REQ_OPCODE = 18 , |
| LMP_SWITCH_REQ_OPCODE = 19 , |
| LMP_HOLD_OPCODE = 20 , |
| LMP_HOLD_REQ_OPCODE = 21 , |
| LMP_SNIFF_REQ_OPCODE = 23 , |
| LMP_UNSNIFF_REQ_OPCODE = 24 , |
| LMP_PARK_REQ_OPCODE = 25 , |
| LMP_SET_BSWIN_OPCODE = 27 , |
| LMP_MODIF_BEACON_OPCODE = 28 , |
| LMP_UNPARK_BD_REQ_OPCODE = 29 , |
| LMP_UNPARK_PM_REQ_OPCODE = 30 , |
| LMP_INCR_PWR_REQ_OPCODE = 31 , |
| LMP_DECR_PWR_REQ_OPCODE = 32 , |
| LMP_MAX_PWR_OPCODE = 33 , |
| LMP_MIN_PWR_OPCODE = 34 , |
| LMP_AUTO_RATE_OPCODE = 35 , |
| LMP_PREF_RATE_OPCODE = 36 , |
| LMP_VER_REQ_OPCODE = 37 , |
| LMP_VER_RES_OPCODE = 38 , |
| LMP_FEATS_REQ_OPCODE = 39 , |
| LMP_FEATS_RES_OPCODE = 40 , |
| LMP_QOS_OPCODE = 41 , |
| LMP_QOS_REQ_OPCODE = 42 , |
| LMP_SCO_LINK_REQ_OPCODE = 43 , |
| LMP_RMV_SCO_LINK_REQ_OPCODE = 44 , |
| LMP_MAX_SLOT_OPCODE = 45 , |
| LMP_MAX_SLOT_REQ_OPCODE = 46 , |
| LMP_TIMING_ACCU_REQ_OPCODE = 47 , |
| LMP_TIMING_ACCU_RES_OPCODE = 48 , |
| LMP_SETUP_CMP_OPCODE = 49 , |
| LMP_USE_SEMI_PERM_KEY_OPCODE = 50 , |
| LMP_HOST_CON_REQ_OPCODE = 51 , |
| LMP_SLOT_OFF_OPCODE = 52 , |
| LMP_PAGE_MODE_REQ_OPCODE = 53 , |
| LMP_PAGE_SCAN_MODE_REQ_OPCODE = 54 , |
| LMP_SUPV_TO_OPCODE = 55 , |
| LMP_TEST_ACTIVATE_OPCODE = 56 , |
| LMP_TEST_CTRL_OPCODE = 57 , |
| LMP_ENC_KEY_SIZE_MASK_REQ_OPCODE = 58 , |
| LMP_ENC_KEY_SIZE_MASK_RES_OPCODE = 59 , |
| LMP_SET_AFH_OPCODE = 60 , |
| LMP_ENCAPS_HDR_OPCODE = 61 , |
| LMP_ENCAPS_PAYL_OPCODE = 62 , |
| LMP_SP_CFM_OPCODE = 63 , |
| LMP_SP_NB_OPCODE = 64 , |
| LMP_DHKEY_CHK_OPCODE = 65 , |
| LMP_PAUSE_ENC_AES_REQ_OPCODE = 66 , |
| LMP_ESC1_OPCODE = 124, |
| LMP_ESC2_OPCODE = 125, |
| LMP_ESC3_OPCODE = 126, |
| LMP_ESC4_OPCODE = 127, |
| }; |
| |
| /// LMP Escape 4 Extended Opcodes |
| enum co_lmp_ext_opcode |
| { |
| LMP_ACCEPTED_EXT_EXTOPCODE = 1, |
| LMP_NOT_ACCEPTED_EXT_EXTOPCODE = 2, |
| LMP_FEATS_REQ_EXT_EXTOPCODE = 3, |
| LMP_FEATS_RES_EXT_EXTOPCODE = 4, |
| LMP_CLK_ADJ_EXTOPCODE = 5, |
| LMP_CLK_ADJ_ACK_EXTOPCODE = 6, |
| LMP_CLK_ADJ_REQ_EXTOPCODE = 7, |
| LMP_PKT_TYPE_TBL_REQ_EXTOPCODE = 11, |
| LMP_ESCO_LINK_REQ_EXTOPCODE = 12, |
| LMP_RMV_ESCO_LINK_REQ_EXTOPCODE = 13, |
| LMP_CH_CLASS_REQ_EXTOPCODE = 16, |
| LMP_CH_CLASS_EXTOPCODE = 17, |
| LMP_SSR_REQ_EXTOPCODE = 21, |
| LMP_SSR_RES_EXTOPCODE = 22, |
| LMP_PAUSE_ENC_REQ_EXTOPCODE = 23, |
| LMP_RESUME_ENC_REQ_EXTOPCODE = 24, |
| LMP_IO_CAP_REQ_EXTOPCODE = 25, |
| LMP_IO_CAP_RES_EXTOPCODE = 26, |
| LMP_NUM_COMPARISON_FAIL_EXTOPCODE = 27, |
| LMP_PASSKEY_FAIL_EXTOPCODE = 28, |
| LMP_OOB_FAIL_EXTOPCODE = 29, |
| LMP_KEYPRESS_NOTIF_EXTOPCODE = 30, |
| LMP_PWR_CTRL_REQ_EXTOPCODE = 31, |
| LMP_PWR_CTRL_RES_EXTOPCODE = 32, |
| LMP_PING_REQ_EXTOPCODE = 33, |
| LMP_PING_RES_EXTOPCODE = 34, |
| LMP_SAM_SET_TYPE0_EXTOPCODE = 35, |
| LMP_SAM_DEFINE_MAP_EXTOPCODE = 36, |
| LMP_SAM_SWITCH_EXTOPCODE = 37, |
| }; |
| |
| /// PDU lengths (including opcode) |
| enum co_lmp_pdu_length |
| { |
| LMP_NAME_REQ_LEN = 2 , |
| LMP_NAME_RES_LEN = 17, |
| LMP_ACCEPTED_LEN = 2 , |
| LMP_NOT_ACCEPTED_LEN = 3 , |
| LMP_CLK_OFF_REQ_LEN = 1 , |
| LMP_CLK_OFF_RES_LEN = 3 , |
| LMP_DETACH_LEN = 2 , |
| LMP_INRAND_LEN = 17, |
| LMP_COMBKEY_LEN = 17, |
| LMP_UNITKEY_LEN = 17, |
| LMP_AURAND_LEN = 17, |
| LMP_SRES_LEN = 5 , |
| LMP_TEMPRAND_LEN = 17, |
| LMP_TEMPKEY_LEN = 17, |
| LMP_ENC_MODE_REQ_LEN = 2 , |
| LMP_ENC_KEY_SIZE_REQ_LEN = 2 , |
| LMP_START_ENC_REQ_LEN = 17, |
| LMP_STOP_ENC_REQ_LEN = 1 , |
| LMP_SWITCH_REQ_LEN = 5 , |
| LMP_HOLD_LEN = 7 , |
| LMP_HOLD_REQ_LEN = 7 , |
| LMP_SNIFF_REQ_LEN = 10, |
| LMP_UNSNIFF_REQ_LEN = 1 , |
| LMP_PARK_REQ_LEN = 17, |
| LMP_INCR_PWR_REQ_LEN = 2 , |
| LMP_DECR_PWR_REQ_LEN = 2 , |
| LMP_MAX_PWR_LEN = 1 , |
| LMP_MIN_PWR_LEN = 1 , |
| LMP_AUTO_RATE_LEN = 1 , |
| LMP_PREF_RATE_LEN = 2 , |
| LMP_VER_REQ_LEN = 6 , |
| LMP_VER_RES_LEN = 6 , |
| LMP_FEATS_REQ_LEN = 9 , |
| LMP_FEATS_RES_LEN = 9 , |
| LMP_QOS_LEN = 4 , |
| LMP_QOS_REQ_LEN = 4 , |
| LMP_SCO_LINK_REQ_LEN = 7 , |
| LMP_RMV_SCO_LINK_REQ_LEN = 3 , |
| LMP_MAX_SLOT_LEN = 2 , |
| LMP_MAX_SLOT_REQ_LEN = 2 , |
| LMP_TIMING_ACCU_REQ_LEN = 1 , |
| LMP_TIMING_ACCU_RES_LEN = 3 , |
| LMP_SETUP_CMP_LEN = 1 , |
| LMP_USE_SEMI_PERM_KEY_LEN = 1 , |
| LMP_HOST_CON_REQ_LEN = 1 , |
| LMP_SLOT_OFF_LEN = 9 , |
| LMP_PAGE_MODE_REQ_LEN = 3 , |
| LMP_PAGE_SCAN_MODE_REQ_LEN = 3 , |
| LMP_SUPV_TO_LEN = 3 , |
| LMP_TEST_ACTIVATE_LEN = 1 , |
| LMP_TEST_CTRL_LEN = 10, |
| LMP_ENC_KEY_SIZE_MASK_REQ_LEN = 1 , |
| LMP_ENC_KEY_SIZE_MASK_RES_LEN = 3 , |
| LMP_SET_AFH_LEN = 16, |
| LMP_ENCAPS_HDR_LEN = 4 , |
| LMP_ENCAPS_PAYL_LEN = 17, |
| LMP_SP_CFM_LEN = 17, |
| LMP_SP_NB_LEN = 17, |
| LMP_DHKEY_CHK_LEN = 17, |
| LMP_PAUSE_ENC_AES_REQ_LEN = 17, |
| }; |
| |
| /// LMP Escape 4 Extended PDU length (including opcode and ext opcode) |
| enum co_lmp_ext_pdu_length |
| { |
| LMP_ACCEPTED_EXT_LEN = 4 , |
| LMP_NOT_ACCEPTED_EXT_LEN = 5 , |
| LMP_FEATS_REQ_EXT_LEN = 12, |
| LMP_FEATS_RES_EXT_LEN = 12, |
| LMP_CLK_ADJ_LEN = 15, |
| LMP_CLK_ADJ_ACK_LEN = 3 , |
| LMP_CLK_ADJ_REQ_LEN = 6 , |
| LMP_PKT_TYPE_TBL_REQ_LEN = 3 , |
| LMP_ESCO_LINK_REQ_LEN = 16, |
| LMP_RMV_ESCO_LINK_REQ_LEN = 4 , |
| LMP_CH_CLASS_REQ_LEN = 7 , |
| LMP_CH_CLASS_LEN = 12, |
| LMP_SSR_REQ_LEN = 9 , |
| LMP_SSR_RES_LEN = 9 , |
| LMP_PAUSE_ENC_REQ_LEN = 2 , |
| LMP_RESUME_ENC_REQ_LEN = 2 , |
| LMP_IO_CAP_REQ_LEN = 5 , |
| LMP_IO_CAP_RES_LEN = 5 , |
| LMP_NUM_COMPARISON_FAIL_LEN = 2 , |
| LMP_PASSKEY_FAIL_LEN = 2 , |
| LMP_OOB_FAIL_LEN = 2 , |
| LMP_KEYPRESS_NOTIF_LEN = 3 , |
| LMP_PWR_CTRL_REQ_LEN = 3 , |
| LMP_PWR_CTRL_RES_LEN = 3 , |
| LMP_PING_REQ_LEN = 2 , |
| LMP_PING_RES_LEN = 2 , |
| LMP_SAM_SET_TYPE0_LEN = 17, |
| LMP_SAM_DEFINE_MAP_LEN = 17, |
| LMP_SAN_SWITCH_LEN = 9, |
| }; |
| |
| /// Maximum LMP PDU size (including opcode and ext opcode) |
| #define LMP_MAX_PDU_SIZE DM1_PACKET_SIZE |
| |
| /// Position of transaction ID in 1st byte |
| #define LMP_TR_ID_POS 0 |
| #define LMP_TR_ID_MASK 0x01 |
| /// Position of opcode in 1st byte |
| #define LMP_OPCODE_POS 1 |
| #define LMP_OPCODE_MASK 0xFE |
| |
| #define LMP_OPCODE(opcode, tr_id) (((opcode << LMP_OPCODE_POS) & LMP_OPCODE_MASK) | ((tr_id << LMP_TR_ID_POS) & LMP_TR_ID_MASK)) |
| /* |
| * MESSAGES |
| **************************************************************************************** |
| */ |
| |
| ///LMP_name_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_name_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Offset |
| uint8_t offset; |
| }; |
| |
| ///LMP_name_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_name_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Offset |
| uint8_t offset; |
| ///Name Length |
| uint8_t length; |
| ///Name Fragment |
| struct name_vect name_frag; |
| }; |
| |
| ///LMP_accepted PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_accepted |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Opcode of the original LMP |
| uint8_t orig_opcode; |
| }; |
| |
| ///LMP_not_accepted PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_not_accepted |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Opcode of the original LMP |
| uint8_t orig_opcode; |
| ///Reason for not accepting the PDU (error code) |
| uint8_t reason; |
| }; |
| |
| ///LMP_clkoffset_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_clk_off_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_clkoffset_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_clk_off_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Clock Offset value |
| uint16_t clk_offset ; |
| }; |
| |
| ///LMP_detach PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_detach |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Reason to detach |
| uint8_t reason; |
| }; |
| |
| ///LMP_in_rand PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_inrand |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Random number |
| struct ltk random; |
| }; |
| |
| ///LMP_comb_key PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_combkey |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Random number |
| struct ltk random; |
| }; |
| |
| ///LMP_unit_key PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_unitkey |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Key |
| struct ltk key; |
| }; |
| |
| ///LMP_au_rand PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_aurand |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Random number |
| struct ltk random; |
| }; |
| |
| ///LMP_sres PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_sres |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Authentication Response |
| struct sres_nb Sres; |
| }; |
| |
| ///LMP_temp_rand PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_temprand |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Random number |
| struct ltk random; |
| }; |
| |
| ///LMP_temp_key PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_tempkey |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Key |
| struct ltk key; |
| }; |
| |
| ///LMP_encryption_mode_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_enc_mode_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Encryption Mode |
| uint8_t enc_mode; |
| }; |
| |
| ///LMP_encryption_key_size_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_enc_key_size_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Key Size |
| uint8_t key_size; |
| }; |
| |
| ///LMP_start_encryption_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_start_enc_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Random number |
| struct ltk random; |
| }; |
| |
| ///LMP_stop_encryption_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_stop_enc_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_switch_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_switch_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Switch Instant |
| uint32_t switch_inst; |
| }; |
| |
| ///LMP_sniff_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_sniff_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| /// Timing Control Flags (bit 1: initialization method 1 or 2) |
| uint8_t flags; |
| /// Offset (in slots) |
| uint16_t d_sniff; |
| /// Interval (in slots) |
| uint16_t t_sniff; |
| /// Attempts (number of receive slots) (in slots) |
| uint16_t sniff_attempt; |
| /// Timeout (number of receive slots) (in slots) |
| uint16_t sniff_to; |
| }; |
| |
| ///LMP_unsniff_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_unsniff_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_incr_power_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_incr_pwr_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///For future use |
| uint8_t reserved; |
| }; |
| |
| ///LMP_decr_power_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_decr_pwr_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///For future use |
| uint8_t reserved; |
| }; |
| |
| ///LMP_max_power PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_max_pwr |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_min_power PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_min_pwr |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_auto_rate PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_auto_rate |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_preferred_rate PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_pref_rate |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Data Rate |
| uint8_t rate; |
| }; |
| |
| ///LMP_version_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_ver_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Version number |
| uint8_t ver; |
| ///Company ID |
| uint16_t co_id; |
| ///Subversion number |
| uint16_t subver; |
| }; |
| |
| ///LMP_version_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_ver_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Version number |
| uint8_t ver; |
| ///Company ID |
| uint16_t co_id; |
| ///Subversion number |
| uint16_t subver; |
| }; |
| |
| ///LMP_features_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_feats_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Features |
| struct features feats; |
| }; |
| |
| ///LMP_features_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_feats_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Features |
| struct features feats; |
| }; |
| |
| ///LMP_quality_of_service PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_qos |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Poll interval |
| uint16_t poll_intv; |
| ///Nbc |
| uint8_t nbc; |
| }; |
| |
| |
| ///LMP_quality_of_service_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_qos_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Poll interval |
| uint16_t poll_intv; |
| ///Nbc |
| uint8_t nbc; |
| }; |
| |
| ///LMP_SCO_link_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_sco_link_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///SCO handle |
| uint8_t sco_hdl; |
| ///timing control flags |
| uint8_t flags; |
| ///Dsco |
| uint8_t d_sco; |
| ///Tsco |
| uint8_t t_sco; |
| ///SCO packet |
| uint8_t sco_pkt; |
| ///Air mode |
| uint8_t air_mode; |
| }; |
| |
| ///LMP_remove_SCO_link_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_rmv_sco_link_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///SCO handle |
| uint8_t sco_hdl; |
| ///Reason for its removal(error code) |
| uint8_t reason; |
| }; |
| |
| ///LMP_max_slot PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_max_slot |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Max slots |
| uint8_t max_slots; |
| }; |
| |
| |
| ///LMP_max_slot_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_max_slot_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Max slots |
| uint8_t max_slots; |
| }; |
| |
| ///LMP_timing_accuracy_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_timing_accu_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_timing_accuracy_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_timing_accu_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Drift |
| uint8_t drift; |
| ///Jitter |
| uint8_t jitter; |
| }; |
| |
| ///LMP_setup_complete PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_setup_cmp |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_use_semi_permanent_key PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_use_semi_perm_key |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_host_connection_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_host_con_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_slot_offset PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_slot_off |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Slot Offset |
| uint16_t slot_off; |
| ///BD Address |
| struct bd_addr addr; |
| }; |
| |
| ///LMP_page_mode_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_page_mode_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Paging scheme |
| uint8_t page_scheme; |
| ///Paging scheme settings |
| uint8_t page_stg; |
| }; |
| |
| ///LMP_page_scan_mode_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_page_scan_mode_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Paging scheme |
| uint8_t page_scheme; |
| ///Paging scheme settings |
| uint8_t page_stg; |
| }; |
| |
| ///LMP_supervision_timeout PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_supv_to |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| /// Supervision Timeout (in slots, 0 means infinite timeout) |
| uint16_t supv_to; |
| }; |
| |
| ///LMP_test_activate PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_test_activate |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_test_control PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_test_ctrl |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Test Scenario |
| uint8_t scenario; |
| ///Hopping Mode |
| uint8_t hop; |
| ///Tx frequency |
| uint8_t tx_freq; |
| ///Rx Frequency |
| uint8_t rx_freq; |
| ///Power Control Mode |
| uint8_t pwr_ctrl; |
| ///Poll period |
| uint8_t poll_period; |
| ///Packet type |
| uint8_t pkt_type; |
| ///length of test data |
| uint16_t data_len; |
| }; |
| |
| ///LMP_encryption_key_size_mask_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_enc_key_size_mask_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| }; |
| |
| ///LMP_encryption_key_size_mask_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_enc_key_size_mask_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Encryption Key Size Mask |
| uint16_t mask; |
| }; |
| |
| ///LMP_set_AFH PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_set_afh |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///AFH Instant |
| uint32_t instant; |
| ///AFH Mode |
| uint8_t mode; |
| ///AFH channel map |
| struct chnl_map map; |
| }; |
| |
| ///LMP_encapsulated_header PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_encaps_hdr |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Encapsulated major type |
| uint8_t maj_type; |
| ///Encapsulated minor type |
| uint8_t min_type; |
| ///Encapsulated Payload Length |
| uint8_t payl_len; |
| }; |
| |
| ///LMP_encapsulated_payload PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_encaps_payl |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Encapsulated data |
| struct byte16 data; |
| }; |
| |
| ///LMP_Simple_Pairing_Confirm PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_sp_cfm |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Commitment Value |
| struct byte16 commitment_val ; |
| }; |
| |
| ///LMP_Simple_Pairing_Number PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_sp_nb |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///nonce Value |
| struct byte16 nonce; |
| }; |
| |
| ///LMP_DHkey_check PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_dhkey_chk |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Confirmation Value |
| struct ltk cfm_val; |
| }; |
| |
| ///LMP_pause_encryption_aes_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_pause_enc_aes_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| /// Random Number |
| struct ltk rand; |
| }; |
| |
| /* |
| * Extended PDUs parameter structures - Escape 4 |
| ****************************************************************************************/ |
| |
| ///LMP_accepted_ext PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_accepted_ext |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Escape opcode of the original LMP |
| uint8_t orig_esc_opcode; |
| ///Extended opcode of the original LMP |
| uint8_t orig_ext_opcode; |
| }; |
| |
| ///LMP_not_accepted_ext PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_not_accepted_ext |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Escape opcode of the original LMP |
| uint8_t orig_esc_opcode; |
| ///Extended opcode of the original LMP |
| uint8_t orig_ext_opcode; |
| ///Reason |
| uint8_t reason; |
| }; |
| |
| ///LMP_features_req_ext PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_feats_req_ext |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Features page |
| uint8_t page; |
| ///Max supported page |
| uint8_t max_page; |
| ///Extended features |
| struct features ext_feats; |
| }; |
| |
| ///LMP_features_res_ext PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_feats_res_ext |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Features page |
| uint8_t page; |
| ///Max supported page |
| uint8_t max_page; |
| ///Extended features |
| struct features ext_feats; |
| }; |
| |
| ///LMP_clk_adj PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_clk_adj |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Coarse clock adjustment Event ID |
| uint8_t clk_adj_id; |
| ///Coarse clock adjustment instant |
| uint32_t clk_adj_instant; |
| ///Coarse clock adjustment intraslot alignment offset |
| int16_t clk_adj_us; |
| ///Coarse clock adjustment slot offset |
| uint8_t clk_adj_slots; |
| ///Coarse clock adjustment mode (before/after instant) |
| uint8_t clk_adj_mode; |
| ///Coarse clock adjustment PDU CLK instant |
| uint32_t clk_adj_clk; |
| }; |
| |
| ///LMP_clk_adj_ack PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_clk_adj_ack |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Coarse clock adjustment Event ID |
| uint8_t clk_adj_id; |
| }; |
| |
| ///LMP_clk_adj_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_clk_adj_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Coarse clock adjustment intraslot alignment offset |
| int16_t clk_adj_us; |
| ///Coarse clock adjustment slot offset |
| uint8_t clk_adj_slots; |
| ///Corase clock adjustment period |
| uint8_t clk_adj_period; |
| }; |
| |
| ///LMP_packet_type_table_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_pkt_type_tbl_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Packet Type table |
| uint8_t pkt_type_tbl; |
| }; |
| |
| ///LMP_SAM_define_map PDU structure |
| struct lmp_sam_define_map |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///SAM Index |
| uint8_t index; |
| ///Tsam-sm |
| uint8_t t_sam_sm; |
| ///Nsam-sm |
| uint8_t n_sam_sm; |
| ///SAM Submaps |
| struct sam_submaps submaps; |
| }; |
| |
| ///LMP_SAM_set_type0 PDU structure |
| struct lmp_sam_set_type0 |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Update mode |
| uint8_t update_mode; |
| ///SAM Type0 submap |
| struct sam_type0_submap submap; |
| }; |
| |
| ///LMP_SAM_switch PDU structure |
| struct lmp_sam_switch |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///SAM Index |
| uint8_t index; |
| ///timing control flags |
| uint8_t flags; |
| ///Dsam |
| uint8_t d_sam; |
| ///SAM instant |
| uint32_t instant; |
| }; |
| |
| ///LMP_eSCO_link_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_esco_link_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///eSCO handle |
| uint8_t esco_hdl; |
| ///eSCo LT Address |
| uint8_t esco_lt_addr; |
| ///timing control flags |
| uint8_t flags; |
| ///Desco |
| uint8_t d_esco; |
| ///t_esco |
| uint8_t t_esco; |
| ///Wesco |
| uint8_t w_esco; |
| ///eSCO packet type M2S |
| uint8_t m2s_pkt_type; |
| ///eSCO packet type S2M |
| uint8_t s2m_pkt_type; |
| ///Packet Length M2S |
| uint16_t m2s_pkt_len; |
| ///Packet Length S2m |
| uint16_t s2m_pkt_len; |
| ///Air Mode |
| uint8_t air_mode; |
| ///Negotiation state |
| uint8_t negt_st; |
| }; |
| |
| ///LMP_remove_eSCO_link_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_rmv_esco_link_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///eSCO handle |
| uint8_t esco_hdl; |
| ///Reason |
| uint8_t reason; |
| }; |
| |
| ///LMP_channel_classification_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_ch_class_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///AFH reporting mode |
| uint8_t rep_mode; |
| ///AFH min interval |
| uint16_t min_intv; |
| ///AFH max interval |
| uint16_t max_intv; |
| }; |
| |
| ///LMP_channel_classification PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_ch_class |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///AFh channel classification |
| struct chnl_map ch_class; |
| }; |
| |
| ///LMP_sniff_subrating_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_ssr_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| /// Maximum sniff sub-rate (in number of sniff events) |
| uint8_t max_subrate; |
| /// Minimum sniff mode timeout (in slots) |
| uint16_t min_to; |
| /// Sniff sub-rating instant (in slots, master clock value) |
| uint32_t instant; |
| }; |
| |
| ///LMP_sniff_subrating_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_ssr_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| /// Maximum sniff sub-rate (in number of sniff events) |
| uint8_t max_subrate; |
| /// Minimum sniff mode timeout (in slots) |
| uint16_t min_to; |
| /// Sniff sub-rating instant (in slots, master clock value) |
| uint32_t instant; |
| }; |
| |
| ///LMP_pause_encryption_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_pause_enc_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| }; |
| |
| ///LMP_resume_encryption_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_resume_enc_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| }; |
| |
| ///LMP_IO_capability_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_io_cap_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///IO Capabilities |
| uint8_t io_cap; |
| /// OOB Authentication data |
| uint8_t oob_auth_data; |
| ///Authentication requirements |
| uint8_t auth_req; |
| }; |
| |
| |
| ///LMP_IO_capability_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_io_cap_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///IO Capabilities |
| uint8_t io_cap; |
| /// OOB Authentication data |
| uint8_t oob_auth_data; |
| ///Authentication requirements |
| uint8_t auth_req; |
| }; |
| |
| ///LMP_numeric_comparison_failed PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_num_comparison_fail |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| }; |
| |
| ///LMP_passkey_failed PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_passkey_fail |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| }; |
| |
| ///LMP_oob_failed PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_oob_fail |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| }; |
| |
| ///LMP_keypress_notification PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_keypress_notif |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Notification Type |
| uint8_t type; |
| }; |
| |
| ///LMP_power_control_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_pwr_ctrl_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Power adjustment request |
| uint8_t pwr_adj; |
| |
| }; |
| |
| ///LMP_power_control_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_pwr_ctrl_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| ///Power adjustment response |
| uint8_t pwr_adj; |
| }; |
| |
| /// LMP_ping_req PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_ping_req |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| }; |
| |
| /// LMP_ping_res PDU structure |
| /*@TRACE |
| * @NO_PAD |
| */ |
| struct lmp_ping_res |
| { |
| ///Opcode (including transaction ID) |
| uint8_t opcode; |
| ///Extended opcode |
| uint8_t ext_opcode; |
| }; |
| |
| /// Union of all the LMP message structures |
| union lmp_pdu |
| { |
| struct lmp_name_req name_req ; |
| struct lmp_name_res name_res ; |
| struct lmp_accepted accepted ; |
| struct lmp_not_accepted not_accepted ; |
| struct lmp_clk_off_req clk_off_req ; |
| struct lmp_clk_off_res clk_off_res ; |
| struct lmp_detach detach ; |
| struct lmp_inrand inrand ; |
| struct lmp_combkey combkey ; |
| struct lmp_unitkey unitkey ; |
| struct lmp_aurand aurand ; |
| struct lmp_sres sres ; |
| struct lmp_temprand temprand ; |
| struct lmp_tempkey tempkey ; |
| struct lmp_enc_mode_req enc_mode_req ; |
| struct lmp_enc_key_size_req enc_key_size_req ; |
| struct lmp_start_enc_req start_enc_req ; |
| struct lmp_stop_enc_req stop_enc_req ; |
| struct lmp_switch_req switch_req ; |
| struct lmp_sniff_req sniff_req ; |
| struct lmp_unsniff_req unsniff_req ; |
| struct lmp_incr_pwr_req incr_pwr_req ; |
| struct lmp_decr_pwr_req decr_pwr_req ; |
| struct lmp_max_pwr max_pwr ; |
| struct lmp_min_pwr min_pwr ; |
| struct lmp_auto_rate auto_rate ; |
| struct lmp_pref_rate pref_rate ; |
| struct lmp_ver_req ver_req ; |
| struct lmp_ver_res ver_res ; |
| struct lmp_feats_req feats_req ; |
| struct lmp_feats_res feats_res ; |
| struct lmp_clk_adj clk_adj ; |
| struct lmp_clk_adj_ack clk_adj_ack ; |
| struct lmp_clk_adj_req clk_adj_req ; |
| struct lmp_qos qos ; |
| struct lmp_qos_req qos_req ; |
| struct lmp_sco_link_req sco_link_req ; |
| struct lmp_rmv_sco_link_req rmv_sco_link_req ; |
| struct lmp_max_slot max_slot ; |
| struct lmp_max_slot_req max_slot_req ; |
| struct lmp_timing_accu_req timing_accu_req ; |
| struct lmp_timing_accu_res timing_accu_res ; |
| struct lmp_setup_cmp setup_cmp ; |
| struct lmp_use_semi_perm_key use_semi_perm_key ; |
| struct lmp_host_con_req host_con_req ; |
| struct lmp_slot_off slot_off ; |
| struct lmp_page_mode_req page_mode_req ; |
| struct lmp_page_scan_mode_req page_scan_mode_req ; |
| struct lmp_supv_to supv_to ; |
| struct lmp_test_activate test_activate ; |
| struct lmp_test_ctrl test_ctrl ; |
| struct lmp_enc_key_size_mask_req enc_key_size_mask_req ; |
| struct lmp_enc_key_size_mask_res enc_key_size_mask_res ; |
| struct lmp_set_afh set_afh ; |
| struct lmp_encaps_hdr encaps_hdr ; |
| struct lmp_encaps_payl encaps_payl ; |
| struct lmp_sp_cfm sp_cfm ; |
| struct lmp_sp_nb sp_nb ; |
| struct lmp_dhkey_chk dhkey_chk ; |
| struct lmp_accepted_ext accepted_ext ; |
| struct lmp_not_accepted_ext not_accepted_ext ; |
| struct lmp_feats_req_ext feats_req_ext ; |
| struct lmp_feats_res_ext feats_res_ext ; |
| struct lmp_pkt_type_tbl_req pkt_type_tbl_req ; |
| struct lmp_sam_define_map sam_define_map ; |
| struct lmp_sam_set_type0 sam_set_type0 ; |
| struct lmp_sam_switch sam_switch ; |
| struct lmp_esco_link_req esco_link_req ; |
| struct lmp_rmv_esco_link_req rmv_esco_link_req ; |
| struct lmp_ch_class_req ch_class_req ; |
| struct lmp_ch_class ch_class ; |
| struct lmp_ssr_req ssr_req ; |
| struct lmp_ssr_res ssr_res ; |
| struct lmp_pause_enc_req pause_enc_req ; |
| struct lmp_resume_enc_req resume_enc_req ; |
| struct lmp_io_cap_req io_cap_req ; |
| struct lmp_io_cap_res io_cap_res ; |
| struct lmp_num_comparison_fail num_comparison_fail ; |
| struct lmp_passkey_fail passkey_fail ; |
| struct lmp_oob_fail oob_fail ; |
| struct lmp_keypress_notif keypress_notif ; |
| struct lmp_pwr_ctrl_req pwr_ctrl_req ; |
| struct lmp_pwr_ctrl_res pwr_ctrl_res ; |
| struct lmp_ping_req ping_req ; |
| struct lmp_ping_res ping_res ; |
| }; |
| |
| |
| /// @} CO_BT |
| #endif // CO_LMP_H_ |