• Gustavo F. Padovan's avatar
    Bluetooth: Fix unset of SrejActioned flag · 889a3ca4
    Gustavo F. Padovan authored
    SrejActioned  is a flag that when set prevents local side to retransmit a
    I-frame(the data frame) already retransmitted. The local entity can
    retransmit again only when it receives a SREJ frame with the F-bit set.
    SREJ frame - Selective Reject frame  - is sent when an entity wants the
    retransmission of a specific I-frame that was lost or corrupted.
    This bug can put ERTM in an unknown state once the entity can't
    retransmit.
    A frame with the Final bit set is expected when the local side sends a
    frame with the Poll bit set due to a local busy condition or a
    retransmission timer expired. (Receipt of P-bit shall always be replied by
    a frame with the F-bit set).
    pi->conn_state keeps informations about many ERTM flags including
    SrejActioned.
    Signed-off-by: default avatarGustavo F. Padovan <gustavo@las.ic.unicamp.br>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    889a3ca4
l2cap.c 89.4 KB