Skip to content

Conversation

@cvinayak
Copy link
Contributor

Ported implementation of Data Length Update Procedure to
ULL/LLL architecture of the Link Layer.

Signed-off-by: Vinayak Kariappa Chettimada [email protected]

@cvinayak cvinayak added the DNM This PR should not be merged (Do Not Merge) label Feb 10, 2019
@codecov-io
Copy link

codecov-io commented Feb 10, 2019

Codecov Report

Merging #13235 into master will increase coverage by 0.01%.
The diff coverage is 73.17%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #13235      +/-   ##
==========================================
+ Coverage   52.93%   52.95%   +0.01%     
==========================================
  Files         309      309              
  Lines       45251    45269      +18     
  Branches    10447    10450       +3     
==========================================
+ Hits        23953    23971      +18     
- Misses      16533    16534       +1     
+ Partials     4765     4764       -1
Impacted Files Coverage Δ
subsys/bluetooth/controller/ll_sw/ull.c 67.19% <ø> (+0.22%) ⬆️
subsys/bluetooth/controller/ll_sw/ull_master.c 71.18% <100%> (+0.09%) ⬆️
subsys/bluetooth/controller/ll_sw/ull_adv.c 47.27% <100%> (+0.13%) ⬆️
...s/bluetooth/controller/ll_sw/nordic/lll/lll_conn.c 73.44% <100%> (+0.18%) ⬆️
subsys/bluetooth/controller/ll_sw/ull_slave.c 81.76% <50%> (ø) ⬆️
subsys/bluetooth/controller/ll_sw/ull_conn.c 49.84% <69.69%> (+0.31%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cf91f8c...d975ffe. Read the comment docs.

@cvinayak cvinayak removed the DNM This PR should not be merged (Do Not Merge) label Feb 18, 2019
@carlescufi carlescufi mentioned this pull request Feb 19, 2019
6 tasks
@carlescufi carlescufi requested a review from mped-oticon March 15, 2019 10:56
Copy link
Contributor

@mped-oticon mped-oticon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, but have a few comments.
Also not completed full review; will await response before continuing.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since CONFIG_BT_RX_BUF_LEN is now always required to be defined, I guess we can also remove the #if defined(CONFIG_BT_RX_BUF_LEN)?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

btw, could you please add a define for magic 11?
(I belive it covers aa+(mic)+crc? Or is preamble included? But does the node_rx actually need to store aa?)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Readability comment.
2nd arg meaning BIT(0) meaning 1Mbps. It would be great to something like BIT(EXT_ADV_AUX_PHY_LE_1M) in these places instead of a 0. (Granted; we shouldn't couple phy with advertisement extensions)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BIT(2) means coded, which of course is a safe, but not very tight, bound.
So this should be #ifdef'ed on whether coded phy is supported.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This always assumes coded phy.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doesn't BIT(2) imply coded phy? Yet it is outside #if defined(CONFIG_BT_CTLR_PHY_CODED)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes good sense. req != ack, so we have an ongoing/pending operation, thus we shall deny this new request.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here req == ack, so we shall grant the new request. Fine.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given above control flow, req will always be one higher than ack (modulo 256 (which here is the same as modulo 4)), so this condition will always be false.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This then-body is dead code?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as ISR can request a control procedure, which then is doing llcp_ack-- between the lines 1265 and 1266, the then body is required to detect the race-condition.

@cvinayak
Copy link
Contributor Author

@mped-oticon updated, please re-review.

Ported implementation of Data Length Update Procedure to
ULL/LLL architecture of the Link Layer.

Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Minor refactoring to move PKT_US into ULL internal header,
and rename ull_conn_allowed_check to ull_conn_llcp_req.

Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Added implementation to pause data PDU transmission during
PHY update procedure in order to comply to BT Spec. v5.1
Vol.6, Part B, Section 5.1.10.1 Packet transmit time
restrictions.

Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
@carlescufi carlescufi merged commit e90ba89 into zephyrproject-rtos:master Apr 23, 2019
@cvinayak cvinayak deleted the github_dle_port branch March 1, 2021 00:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants