7222 Commits

Author SHA1 Message Date
Matthias Ringwald
3233d8ab19 l2cap-ertm: handle S-RR with F=1 - caused by S-RR with P=1 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
dcb071b72b l2cap-ertm: send req_seq in i-frames 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
9ffcbce4d5 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
2a424812a1 l2cap-ertm: free tx packets based on req seq in i-frame 2017-07-25 15:15:02 +02:00
Matthias Ringwald
212b6be258 l2cap-ertm: only send tx packet when num unack packages < tx window size 2017-07-25 15:15:02 +02:00
Matthias Ringwald
bdbe2e4960 l2cap-ertm: free tx packets that receive an RR s-frame 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
25cd60d37c l2cap-ertm: store remote config in optional ertm mode, too 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
ed971c5a8f l2cap-ertm: reassemble L2CAP SDU segmented by ERTM 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
27e0774ac6 l2cap-ertm: check FCS for packets in ERTM. pass complete packets to higher layer 2017-07-25 15:15:02 +02:00
Matthias Ringwald
585d028271 l2cap-ertm: dump l2cap data packets in l2cap_test 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
450ad7ecde l2cap-ertm: extract l2cap_setup_options_mtu and l2cap_setup_options_ertm from l2cap_setup_options 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
5b1804341c l2cap-ertm: add l2cap configuration result defines 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
f073f0868e l2cap-ertm: fallback to basic mode if remote doesn't indicate support for ertm in information response 2017-07-25 15:15:02 +02:00
Matthias Ringwald
f2fa388d63 l2cap-ertm: handle fallback for optional ERTM 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
3232a1c67c l2cap-ertm: disconnect if ERTM mandatory but F&EC config with Basic mode received 2017-07-25 15:13:59 +02:00
Matthias Ringwald
a32d6a0346 l2cap-ertm: disconnect if ertm mandatory but configure response indicates ertm not supported here 2017-07-25 15:13:59 +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
543b84e459 l2cap-ertm: abort connection if ertm requested but not supported by remote in information response 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
6dca2a0cf9 l2cap-ertm: send ERTM options in Config Response 2017-07-25 15:13:59 +02:00
Matthias Ringwald
742075fcc3 test/pts/l2cap_test: fix ERTM state console output 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
5f78701e41 test/pts/l2cap_test: use current PTS dongle 2017-07-25 15:13:59 +02:00
Matthias Ringwald
a6bfadd349 l2cap-ertm: add ERTM flag in Information Response 2017-07-25 15:13:59 +02:00
Matthias Ringwald
05fa60db84 l2cap_ertm: add ENABLE_L2CAP_ENHANCED_RETRANSMISSION_MODE define 2017-07-25 15:13:59 +02:00
Matthias Ringwald
3ce3a4ebf3 btstack_uart_block: allow to 'unset' a callback by setting it to NULL. Update code for freertos and embedded to implement this 2017-07-24 11:53:29 +02:00
Matthias Ringwald
2c204492a0 esp32: use malloc for btstack stuctures 2017-07-24 10:57:08 +02:00