Matthias Ringwald
7740e150a7
l2cap: round robin over all channel types (classic, le data channel, fixed)
2018-02-05 15:19:00 +01:00
Matthias Ringwald
fad84caf30
l2cap: manage fixed channels for ATT, SM, and Connectionless Data in l2cap_fixed_channel_t and keep in unified channels list
2018-02-05 15:19:00 +01:00
Matthias Ringwald
5d18f62371
l2cap: define l2cap_channel_type_t and set for new channels
2018-02-05 15:19:00 +01:00
Matthias Ringwald
25818320b7
l2cap: allow to set the max LE MTU
2018-01-30 19:01:33 +01:00
Matthias Ringwald
ceec418a18
l2cap: support connection requests during connection request failure
2017-11-17 17:41:37 +01:00
Matthias Ringwald
6574158ae6
l2cap-ertm: try to negotiate 'No FCS' in order to work around iOS bug
...
Issue: iOS (e.g. 10.2) uses 'No FCS' as default while Core 5.0 specifies 'FCS' as default
Workaround: try to actively negotiate 'No FCS' and fall back to 'FCS' if 'No FCS' is rejected
This works as iOS accepts the 'No FCS' request, hence the default value is only used on non-iOS devices
2017-11-10 16:03:53 +01:00
Matthias Ringwald
af3e22a342
l2cap-ertm: reorder l2cap-ertm fields
2017-07-25 15:15:03 +02:00
Matthias Ringwald
9c0e62d33a
l2cap: introduce parameter object l2cap_ertm_config_t for l2cap_create_ertm_channel and l2cap_accept_ertm_connection
2017-07-25 15:15:03 +02:00
Matthias Ringwald
943013524c
l2cap-ertm: keep track of unacknowledged i-frames in unacked_frames field
2017-07-25 15:15:03 +02:00
Matthias Ringwald
c9300dca9a
l2cap-ertm: move retransmission and monitor timers into l2cap_channel, extract l2cap_ertm_start_retransmission_timer and l2cap_ertm_start_monitor_timer
2017-07-25 15:15:03 +02:00
Matthias Ringwald
707347078f
l2cap-ertm: store out of sequence SDUs, process in order after missing packet is received
2017-07-25 15:15:03 +02:00
Matthias Ringwald
e32be4094e
l2cap-ertm: pass payload of current packet to l2cap_ertm_handle_in_sequence_sdu, simplify code
2017-07-25 15:15:03 +02:00
Matthias Ringwald
e8e9809fca
l2cap-ertm: reassemble ertm packets in dedicated reassembly buffer
2017-07-25 15:15:03 +02:00
Matthias Ringwald
82bb0e2240
l2cap-ertm: prepare for segmentation
2017-07-25 15:15:02 +02:00
Matthias Ringwald
843bae5d26
l2cap-ertm: reserve buffer for packet reassembly, too. calculate local mps and use in ertm config
2017-07-25 15:15:02 +02:00
Matthias Ringwald
2bea1b8d8a
l2cap-ertm: signal/clear local busy condition
2017-07-25 15:15:02 +02:00
Matthias Ringwald
d2afdd388b
l2cap-ertm: track p=1 bit in set_final_bit_after_packet_with_poll_bit_set for now
2017-07-25 15:15:02 +02:00
Matthias Ringwald
df2191a738
l2cap-ertm: send S-SREJ if only a single packet is missing
2017-07-25 15:15:02 +02:00
Matthias Ringwald
c7309e8d6f
l2cap-ertm: set req_seq to tx_seq + 1 if expected, send S-REJ for unexpected packets
2017-07-25 15:15:02 +02:00
Matthias Ringwald
bc4521b70e
l2cap-ertm: acknowledge more than one packets
2017-07-25 15:15:02 +02:00
Matthias Ringwald
7b7901d861
l2cap-ertm: handle S-REJ
2017-07-25 15:15:02 +02:00
Matthias Ringwald
db55d2e9b3
l2cap-ertm: disconnect l2cap after monitor timeout and rety count has reached max transmit
2017-07-25 15:15:02 +02:00
Matthias Ringwald
20fa474d9d
l2cap-ertm: send RR with Poll after monitor timeout
2017-07-25 15:15:02 +02:00
Matthias Ringwald
78cd8a226d
l2cap-ertm: send RR with F=1 if RR with P=1 is received
2017-07-25 15:15:02 +02:00
Matthias Ringwald
62041d70a9
l2cap-ertm: send RR with poll=1 if packet is not acknowledged
2017-07-25 15:15:02 +02:00
Matthias Ringwald
8f1c963925
l2cap-ertm: implement l2cap_ertm_set_busy
2017-07-25 15:15:02 +02:00
Matthias Ringwald
67a3a5b71d
l2cap-ertm: add (empty) l2cap_ertm_set_busy and set_ready to signal local busy condition
2017-07-25 15:15:02 +02:00
Matthias Ringwald
675e6881a7
l2cap-ertm: send tx packets from l2cap_run
2017-07-25 15:15:02 +02:00
Matthias Ringwald
f0fb4cd727
l2cap-ertm: store tx packets in channel->tx_packets_data before sending
2017-07-25 15:15:02 +02:00
Matthias Ringwald
d84e866fb8
l2cap-ertm: use send_supervisor_frame_receiver_ready to request RR frame
2017-07-25 15:15:02 +02:00
Matthias Ringwald
38f62777f8
l2cap-ertm: ack correclty received tx packets with s-frame RR
2017-07-25 15:15:02 +02:00
Matthias Ringwald
bbc0a9e771
l2cap-ertm: store remote ERTM config
2017-07-25 15:15:02 +02:00
Matthias Ringwald
2b70d7058b
l2cap-ertm: validate ertm config
2017-07-25 15:15:02 +02:00
Matthias Ringwald
7b1816297b
l2cap-ertm: store ertm config in channel struct, setup rx+tx packet state tracking
2017-07-25 15:15:02 +02:00
Matthias Ringwald
501329faba
l2cap-ertm: add ERTM configuration options to create and accept l2cap connection API
2017-07-25 15:15:02 +02:00
Matthias Ringwald
5260604380
l2cap-ertm: query remote extended feature mask before accepting connection request
2017-07-25 15:15:02 +02:00
Matthias Ringwald
ac8f130048
l2cap-ertm: renegotiate basic mode if ERTM not requested
2017-07-25 15:15:02 +02:00
Matthias Ringwald
85ddcd8496
l2cap-ertm: send data as i-frames for ertm mode, calculate crc16 using table
2017-07-25 15:15:02 +02:00
Matthias Ringwald
45caebe58e
l2cap-ertm: add ertm_mandatory flag to create and accept connection
2017-07-25 15:15:01 +02:00
Matthias Ringwald
d4016dac2c
l2cap-ertm: add ertm_mandatory flag using default yes for now
2017-07-25 15:13:59 +02:00
Matthias Ringwald
1b9cb13d36
l2cap-ertm: query extended features before opening l2cap ertm connection
2017-07-25 15:13:59 +02:00
Matthias Ringwald
43ec931d38
l2ap-ertm: send retransmission and flow control option when channel accepted with l2cap_accept_ertm_connection
2017-07-25 15:13:59 +02:00
Matthias Ringwald
b5a7c9b3d5
l2cap: reduce minimal HCI_ACL_PAYLOAD_SIZE to 27 for LE only
2017-03-12 20:59:44 +01:00
Matthias Ringwald
e74c5f5849
l2cap: set source cid in CONNECTION_RESPONSE for error cases - although spec mandates receiver to ingore it
2017-02-02 12:16:04 +01:00
Milanka Ringwald
25234a7e05
Merge branch 'develop' into a2dp
...
Conflicts:
example/Makefile.inc
example/sco_demo_util.c
port/pic32-harmony/app.X/nbproject/Makefile-default.mk
port/pic32-harmony/app.X/nbproject/Makefile-genesis.properties
port/pic32-harmony/app.X/nbproject/configurations.xml
port/pic32-harmony/create_examples.py
src/classic/btstack_cvsd_plc.c
src/classic/btstack_sbc_bludroid.c
src/classic/btstack_sbc_plc.c
test/ring_buffer/.gitignore
2016-11-14 15:54:38 +01:00
Matthias Ringwald
f30489e747
initial docu for le-data-channels
2016-10-18 15:45:20 +02:00
Matthias Ringwald
c99bb61874
add incoming to L2CAP_EVENT_LE_INCOMING_CONNECTION
2016-10-18 15:24:09 +02:00
Matthias Ringwald
4427624894
add LE Data Channel Events (L2CAP_EVENT_LE_*). implement can send now logic
2016-10-18 11:49:04 +02:00
Matthias Ringwald
7dafa7502d
require hci connection for l2cap le data channels
2016-10-12 12:27:20 +02:00
Matthias Ringwald
85aeef606d
l2cap: count credits with le data channels. implement auto credits
2016-10-05 22:09:32 +02:00