180 Commits

Author SHA1 Message Date
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