You need to sign in or sign up before continuing.
  • Qiqi Zhang's avatar
    Bluetooth: hci_h5: Complements reliable packet processing logic · 3c0d41f1
    Qiqi Zhang authored
    
    
    As shown in the schematic diagram below.There may be a critical
    scenario in the current code. If the device does not receive an
    pure ack sent by the host due to insufficient receive buffer or
    other reasons and triggers a retransmission, the host will always
    be in an 'out-of-order' state.The state machine will get stuck.
    
           host                 device
         SEQ3,ACK4 --------->
                   <--------- SEQ4,ACK4
         pure ACK  ---------> (not received)
    (out-of-order) <--------- SEQ4,ACK4(retransmission)
                    ........
    (out-of-order) <--------- SEQ4,ACK4(retransmission)
    
    According to the description in the core specification: "whenever
    a reliable packet is received, an acknowledgment shall be generated."
    So set H5_TX_ACK_REQ bit to trigger retransmission of pure ack packet
    when "out-of-order" occurs.
    Signed-off-by: default avatarQiqi Zhang <eddy.zhang@rock-chips.com>
    Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
    3c0d41f1
hci_h5.c 25.6 KB