@@ -5486,66 +5486,6 @@ static inline void ctrl_tx_ack(struct ll_conn *conn, struct node_tx **tx,
54865486 }
54875487}
54885488
5489- static inline bool pdu_len_cmp (uint8_t opcode , uint8_t len )
5490- {
5491- const uint8_t ctrl_len_lut [] = {
5492- (offsetof(struct pdu_data_llctrl , conn_update_ind ) +
5493- sizeof (struct pdu_data_llctrl_conn_update_ind )),
5494- (offsetof(struct pdu_data_llctrl , chan_map_ind ) +
5495- sizeof (struct pdu_data_llctrl_chan_map_ind )),
5496- (offsetof(struct pdu_data_llctrl , terminate_ind ) +
5497- sizeof (struct pdu_data_llctrl_terminate_ind )),
5498- (offsetof(struct pdu_data_llctrl , enc_req ) +
5499- sizeof (struct pdu_data_llctrl_enc_req )),
5500- (offsetof(struct pdu_data_llctrl , enc_rsp ) +
5501- sizeof (struct pdu_data_llctrl_enc_rsp )),
5502- (offsetof(struct pdu_data_llctrl , start_enc_req ) +
5503- sizeof (struct pdu_data_llctrl_start_enc_req )),
5504- (offsetof(struct pdu_data_llctrl , start_enc_rsp ) +
5505- sizeof (struct pdu_data_llctrl_start_enc_rsp )),
5506- (offsetof(struct pdu_data_llctrl , unknown_rsp ) +
5507- sizeof (struct pdu_data_llctrl_unknown_rsp )),
5508- (offsetof(struct pdu_data_llctrl , feature_req ) +
5509- sizeof (struct pdu_data_llctrl_feature_req )),
5510- (offsetof(struct pdu_data_llctrl , feature_rsp ) +
5511- sizeof (struct pdu_data_llctrl_feature_rsp )),
5512- (offsetof(struct pdu_data_llctrl , pause_enc_req ) +
5513- sizeof (struct pdu_data_llctrl_pause_enc_req )),
5514- (offsetof(struct pdu_data_llctrl , pause_enc_rsp ) +
5515- sizeof (struct pdu_data_llctrl_pause_enc_rsp )),
5516- (offsetof(struct pdu_data_llctrl , version_ind ) +
5517- sizeof (struct pdu_data_llctrl_version_ind )),
5518- (offsetof(struct pdu_data_llctrl , reject_ind ) +
5519- sizeof (struct pdu_data_llctrl_reject_ind )),
5520- (offsetof(struct pdu_data_llctrl , slave_feature_req ) +
5521- sizeof (struct pdu_data_llctrl_slave_feature_req )),
5522- (offsetof(struct pdu_data_llctrl , conn_param_req ) +
5523- sizeof (struct pdu_data_llctrl_conn_param_req )),
5524- (offsetof(struct pdu_data_llctrl , conn_param_rsp ) +
5525- sizeof (struct pdu_data_llctrl_conn_param_rsp )),
5526- (offsetof(struct pdu_data_llctrl , reject_ext_ind ) +
5527- sizeof (struct pdu_data_llctrl_reject_ext_ind )),
5528- (offsetof(struct pdu_data_llctrl , ping_req ) +
5529- sizeof (struct pdu_data_llctrl_ping_req )),
5530- (offsetof(struct pdu_data_llctrl , ping_rsp ) +
5531- sizeof (struct pdu_data_llctrl_ping_rsp )),
5532- (offsetof(struct pdu_data_llctrl , length_req ) +
5533- sizeof (struct pdu_data_llctrl_length_req )),
5534- (offsetof(struct pdu_data_llctrl , length_rsp ) +
5535- sizeof (struct pdu_data_llctrl_length_rsp )),
5536- (offsetof(struct pdu_data_llctrl , phy_req ) +
5537- sizeof (struct pdu_data_llctrl_phy_req )),
5538- (offsetof(struct pdu_data_llctrl , phy_rsp ) +
5539- sizeof (struct pdu_data_llctrl_phy_rsp )),
5540- (offsetof(struct pdu_data_llctrl , phy_upd_ind ) +
5541- sizeof (struct pdu_data_llctrl_phy_upd_ind )),
5542- (offsetof(struct pdu_data_llctrl , min_used_chans_ind ) +
5543- sizeof (struct pdu_data_llctrl_min_used_chans_ind )),
5544- };
5545-
5546- return ctrl_len_lut [opcode ] == len ;
5547- }
5548-
55495489static inline int ctrl_rx (memq_link_t * link , struct node_rx_pdu * * rx ,
55505490 struct pdu_data * pdu_rx , struct ll_conn * conn )
55515491{
@@ -5574,8 +5514,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
55745514 uint8_t err ;
55755515
55765516 if (!conn -> lll .role ||
5577- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_CONN_UPDATE_IND ,
5578- pdu_rx -> len )) {
5517+ PDU_DATA_LLCTRL_LEN (conn_update_ind ) != pdu_rx -> len ) {
55795518 goto ull_conn_rx_unknown_rsp_send ;
55805519 }
55815520
@@ -5596,8 +5535,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
55965535 uint8_t err ;
55975536
55985537 if (!conn -> lll .role ||
5599- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_CHAN_MAP_IND ,
5600- pdu_rx -> len )) {
5538+ PDU_DATA_LLCTRL_LEN (chan_map_ind ) != pdu_rx -> len ) {
56015539 goto ull_conn_rx_unknown_rsp_send ;
56025540 }
56035541
@@ -5610,8 +5548,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
56105548#endif /* CONFIG_BT_PERIPHERAL */
56115549
56125550 case PDU_DATA_LLCTRL_TYPE_TERMINATE_IND :
5613- if (!pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_TERMINATE_IND ,
5614- pdu_rx -> len )) {
5551+ if (PDU_DATA_LLCTRL_LEN (terminate_ind ) != pdu_rx -> len ) {
56155552 goto ull_conn_rx_unknown_rsp_send ;
56165553 }
56175554
@@ -5622,7 +5559,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
56225559#if defined(CONFIG_BT_PERIPHERAL )
56235560 case PDU_DATA_LLCTRL_TYPE_ENC_REQ :
56245561 if (!conn -> lll .role ||
5625- ! pdu_len_cmp ( PDU_DATA_LLCTRL_TYPE_ENC_REQ , pdu_rx -> len ) ) {
5562+ PDU_DATA_LLCTRL_LEN ( enc_req ) != pdu_rx -> len ) {
56265563 goto ull_conn_rx_unknown_rsp_send ;
56275564 }
56285565
@@ -5693,7 +5630,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
56935630#if defined(CONFIG_BT_CENTRAL )
56945631 case PDU_DATA_LLCTRL_TYPE_ENC_RSP :
56955632 if (conn -> lll .role ||
5696- ! pdu_len_cmp ( PDU_DATA_LLCTRL_TYPE_ENC_RSP , pdu_rx -> len ) ) {
5633+ PDU_DATA_LLCTRL_LEN ( enc_rsp ) != pdu_rx -> len ) {
56975634 goto ull_conn_rx_unknown_rsp_send ;
56985635 }
56995636
@@ -5714,8 +5651,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
57145651 case PDU_DATA_LLCTRL_TYPE_START_ENC_REQ :
57155652 if (conn -> lll .role || (conn -> llcp_req == conn -> llcp_ack ) ||
57165653 (conn -> llcp_type != LLCP_ENCRYPTION ) ||
5717- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_START_ENC_REQ ,
5718- pdu_rx -> len )) {
5654+ PDU_DATA_LLCTRL_LEN (start_enc_req ) != pdu_rx -> len ) {
57195655 goto ull_conn_rx_unknown_rsp_send ;
57205656 }
57215657
@@ -5729,8 +5665,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
57295665#endif /* CONFIG_BT_CENTRAL */
57305666
57315667 case PDU_DATA_LLCTRL_TYPE_START_ENC_RSP :
5732- if (!pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_START_ENC_RSP ,
5733- pdu_rx -> len )) {
5668+ if (PDU_DATA_LLCTRL_LEN (start_enc_rsp ) != pdu_rx -> len ) {
57345669 goto ull_conn_rx_unknown_rsp_send ;
57355670 }
57365671
@@ -5782,8 +5717,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
57825717#if defined(CONFIG_BT_PERIPHERAL )
57835718 case PDU_DATA_LLCTRL_TYPE_FEATURE_REQ :
57845719 if (!conn -> lll .role ||
5785- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_FEATURE_REQ ,
5786- pdu_rx -> len )) {
5720+ PDU_DATA_LLCTRL_LEN (feature_req ) != pdu_rx -> len ) {
57875721 goto ull_conn_rx_unknown_rsp_send ;
57885722 }
57895723
@@ -5794,8 +5728,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
57945728#if defined(CONFIG_BT_CENTRAL ) && defined(CONFIG_BT_CTLR_SLAVE_FEAT_REQ )
57955729 case PDU_DATA_LLCTRL_TYPE_SLAVE_FEATURE_REQ :
57965730 if (conn -> lll .role ||
5797- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_SLAVE_FEATURE_REQ ,
5798- pdu_rx -> len )) {
5731+ PDU_DATA_LLCTRL_LEN (slave_feature_req ) != pdu_rx -> len ) {
57995732 goto ull_conn_rx_unknown_rsp_send ;
58005733 }
58015734
@@ -5807,8 +5740,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
58075740 case PDU_DATA_LLCTRL_TYPE_FEATURE_RSP :
58085741 if ((!IS_ENABLED (CONFIG_BT_CTLR_SLAVE_FEAT_REQ ) &&
58095742 conn -> lll .role ) ||
5810- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_FEATURE_RSP ,
5811- pdu_rx -> len )) {
5743+ PDU_DATA_LLCTRL_LEN (feature_rsp ) != pdu_rx -> len ) {
58125744 goto ull_conn_rx_unknown_rsp_send ;
58135745 }
58145746
@@ -5820,8 +5752,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
58205752#if defined(CONFIG_BT_PERIPHERAL )
58215753 case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ :
58225754 if (!conn -> lll .role ||
5823- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ ,
5824- pdu_rx -> len )) {
5755+ PDU_DATA_LLCTRL_LEN (pause_enc_req ) != pdu_rx -> len ) {
58255756 goto ull_conn_rx_unknown_rsp_send ;
58265757 }
58275758
@@ -5830,8 +5761,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
58305761#endif /* CONFIG_BT_PERIPHERAL */
58315762
58325763 case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_RSP :
5833- if (!pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_RSP ,
5834- pdu_rx -> len )) {
5764+ if (PDU_DATA_LLCTRL_LEN (pause_enc_rsp ) != pdu_rx -> len ) {
58355765 goto ull_conn_rx_unknown_rsp_send ;
58365766 }
58375767
@@ -5840,8 +5770,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
58405770#endif /* CONFIG_BT_CTLR_LE_ENC */
58415771
58425772 case PDU_DATA_LLCTRL_TYPE_VERSION_IND :
5843- if (!pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_VERSION_IND ,
5844- pdu_rx -> len )) {
5773+ if (PDU_DATA_LLCTRL_LEN (version_ind ) != pdu_rx -> len ) {
58455774 goto ull_conn_rx_unknown_rsp_send ;
58465775 }
58475776
@@ -5850,7 +5779,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
58505779
58515780#if defined(CONFIG_BT_CTLR_LE_ENC )
58525781 case PDU_DATA_LLCTRL_TYPE_REJECT_IND :
5853- if (! pdu_len_cmp ( PDU_DATA_LLCTRL_TYPE_REJECT_IND , pdu_rx -> len ) ) {
5782+ if (PDU_DATA_LLCTRL_LEN ( reject_ind ) != pdu_rx -> len ) {
58545783 goto ull_conn_rx_unknown_rsp_send ;
58555784 }
58565785
@@ -5860,8 +5789,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
58605789
58615790#if defined(CONFIG_BT_CTLR_CONN_PARAM_REQ )
58625791 case PDU_DATA_LLCTRL_TYPE_CONN_PARAM_REQ :
5863- if (!pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_CONN_PARAM_REQ ,
5864- pdu_rx -> len )) {
5792+ if (PDU_DATA_LLCTRL_LEN (conn_param_req ) != pdu_rx -> len ) {
58655793 goto ull_conn_rx_unknown_rsp_send ;
58665794 }
58675795
@@ -6114,8 +6042,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
61146042#if defined(CONFIG_BT_CENTRAL )
61156043 case PDU_DATA_LLCTRL_TYPE_CONN_PARAM_RSP :
61166044 if (conn -> lll .role ||
6117- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_CONN_PARAM_RSP ,
6118- pdu_rx -> len )) {
6045+ PDU_DATA_LLCTRL_LEN (conn_param_rsp ) != pdu_rx -> len ) {
61196046 goto ull_conn_rx_unknown_rsp_send ;
61206047 }
61216048
@@ -6188,8 +6115,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
61886115#endif /* CONFIG_BT_CTLR_CONN_PARAM_REQ */
61896116
61906117 case PDU_DATA_LLCTRL_TYPE_REJECT_EXT_IND :
6191- if (!pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_REJECT_EXT_IND ,
6192- pdu_rx -> len )) {
6118+ if (PDU_DATA_LLCTRL_LEN (reject_ext_ind ) != pdu_rx -> len ) {
61936119 goto ull_conn_rx_unknown_rsp_send ;
61946120 }
61956121
@@ -6198,15 +6124,15 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
61986124
61996125#if defined(CONFIG_BT_CTLR_LE_PING )
62006126 case PDU_DATA_LLCTRL_TYPE_PING_REQ :
6201- if (! pdu_len_cmp ( PDU_DATA_LLCTRL_TYPE_PING_REQ , pdu_rx -> len ) ) {
6127+ if (PDU_DATA_LLCTRL_LEN ( ping_req ) != pdu_rx -> len ) {
62026128 goto ull_conn_rx_unknown_rsp_send ;
62036129 }
62046130
62056131 nack = ping_resp_send (conn , * rx );
62066132 break ;
62076133
62086134 case PDU_DATA_LLCTRL_TYPE_PING_RSP :
6209- if (! pdu_len_cmp ( PDU_DATA_LLCTRL_TYPE_PING_RSP , pdu_rx -> len ) ) {
6135+ if (PDU_DATA_LLCTRL_LEN ( ping_rsp ) != pdu_rx -> len ) {
62106136 goto ull_conn_rx_unknown_rsp_send ;
62116137 }
62126138
@@ -6220,8 +6146,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
62206146#endif /* CONFIG_BT_CTLR_LE_PING */
62216147
62226148 case PDU_DATA_LLCTRL_TYPE_UNKNOWN_RSP :
6223- if (!pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_UNKNOWN_RSP ,
6224- pdu_rx -> len )) {
6149+ if (PDU_DATA_LLCTRL_LEN (unknown_rsp ) != pdu_rx -> len ) {
62256150 goto ull_conn_rx_unknown_rsp_send ;
62266151 }
62276152
@@ -6370,8 +6295,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
63706295#if defined(CONFIG_BT_CTLR_DATA_LENGTH )
63716296 case PDU_DATA_LLCTRL_TYPE_LENGTH_RSP :
63726297 case PDU_DATA_LLCTRL_TYPE_LENGTH_REQ :
6373- if (!pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_LENGTH_REQ ,
6374- pdu_rx -> len )) {
6298+ if (PDU_DATA_LLCTRL_LEN (length_req ) != pdu_rx -> len ) {
63756299 goto ull_conn_rx_unknown_rsp_send ;
63766300 }
63776301
@@ -6381,7 +6305,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
63816305
63826306#if defined(CONFIG_BT_CTLR_PHY )
63836307 case PDU_DATA_LLCTRL_TYPE_PHY_REQ :
6384- if (! pdu_len_cmp ( PDU_DATA_LLCTRL_TYPE_PHY_REQ , pdu_rx -> len ) ) {
6308+ if (PDU_DATA_LLCTRL_LEN ( phy_req ) != pdu_rx -> len ) {
63856309 goto ull_conn_rx_unknown_rsp_send ;
63866310 }
63876311
@@ -6469,7 +6393,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
64696393#if defined(CONFIG_BT_CENTRAL )
64706394 case PDU_DATA_LLCTRL_TYPE_PHY_RSP :
64716395 if (conn -> lll .role ||
6472- ! pdu_len_cmp ( PDU_DATA_LLCTRL_TYPE_PHY_RSP , pdu_rx -> len ) ) {
6396+ PDU_DATA_LLCTRL_LEN ( phy_rsp ) != pdu_rx -> len ) {
64736397 goto ull_conn_rx_unknown_rsp_send ;
64746398 }
64756399
@@ -6508,8 +6432,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
65086432 uint8_t err ;
65096433
65106434 if (!conn -> lll .role ||
6511- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_PHY_UPD_IND ,
6512- pdu_rx -> len )) {
6435+ PDU_DATA_LLCTRL_LEN (phy_upd_ind ) != pdu_rx -> len ) {
65136436 goto ull_conn_rx_unknown_rsp_send ;
65146437 }
65156438
@@ -6526,8 +6449,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
65266449#if defined(CONFIG_BT_CENTRAL )
65276450 case PDU_DATA_LLCTRL_TYPE_MIN_USED_CHAN_IND :
65286451 if (conn -> lll .role ||
6529- !pdu_len_cmp (PDU_DATA_LLCTRL_TYPE_MIN_USED_CHAN_IND ,
6530- pdu_rx -> len )) {
6452+ PDU_DATA_LLCTRL_LEN (min_used_chans_ind ) != pdu_rx -> len ) {
65316453 goto ull_conn_rx_unknown_rsp_send ;
65326454 }
65336455
0 commit comments