7149 Commits

Author SHA1 Message Date
Matthias Ringwald
688f976463 l2cap: avoid unused parameter warning 2017-07-25 15:25:58 +02:00
Matthias Ringwald
f6434032a9 libusb: don't ENABLE_L2CAP_ENHANCED_RETRANSMISSION_MODE yet 2017-07-25 15:17:14 +02: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
671fb338cc l2cap: introduce l2cap_config_option_type_t 2017-07-25 15:15:03 +02:00
Matthias Ringwald
3e64cb4412 l2cap: introduce l2cap_info_type_t 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
3c412221cc l2cap-ertm: fix l2cap data dispatch for ertm 2017-07-25 15:15:03 +02:00
Matthias Ringwald
550189ff21 l2cap-ertm: stop monitor timer on RR/F=1 2017-07-25 15:15:03 +02:00
Matthias Ringwald
1e1a46bbd1 l2cap-ertm: review use of retransmission timer 2017-07-25 15:15:03 +02:00
Matthias Ringwald
474f5c3f07 l2cap-ertm: collect all ERTM-only function at the beginning 2017-07-25 15:15:03 +02:00
Matthias Ringwald
8a70005207 l2cap-ertm: extract l2cap_ertm_stop_retransmission_timer 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
db9a684459 pts: fix warning for make clean 2017-07-25 15:15:03 +02:00
Matthias Ringwald
9664600160 l2cap-ertm: extract l2cap_ertm_can_store_packet_now, implement l2cap_ertm_notify_channel_can_send, support l2cap_request_can_send_now_event for ERTM connections 2017-07-25 15:15:03 +02:00
Matthias Ringwald
0b20b13bb3 l2cap-ertm: implement l2cap_can_send_packet_now for ERTM 2017-07-25 15:15:03 +02:00
Matthias Ringwald
f85ade6bf6 l2cap-ertm: set final bit for RR with p=1 in S-REJ, process stored frames and send updated S-RR 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
d48432d429 l2cap-ertm: extract l2cap_ertm_handle_in_sequence_sdu 2017-07-25 15:15:03 +02:00
Matthias Ringwald
7bebc11caa l2cap-ertm: fragment outgoing data into tx buffers 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
3844aeadb3 l2cap-ertm: track remote mps 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
11b576c5ca l2cap-ertm: handle I with F=1 - caused by S-RR with P=1 2017-07-25 15:15:02 +02:00
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