Skip to content

rose: don't warn on stray CALL_ACCEPTED/CLEAR_CONFIRMATION in state 3 - #7

Open
f6bvp wants to merge 1 commit into
linux-netdev:mainfrom
f6bvp:rose-quiet-state3-races
Open

rose: don't warn on stray CALL_ACCEPTED/CLEAR_CONFIRMATION in state 3#7
f6bvp wants to merge 1 commit into
linux-netdev:mainfrom
f6bvp:rose-quiet-state3-races

Conversation

@f6bvp

@f6bvp f6bvp commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

rose_state3_machine() logs "ROSE: unknown %02X in state 3" at
KERN_WARNING for any frame type it does not handle during data
transfer. Two of them reach that default arm routinely on real AX.25
links and alarm sysops watching the console, even though they are
harmless:

  • CALL_ACCEPTED (0x0F): a late or duplicated Call Accepted that
    arrives after the socket has already moved to STATE_3, typically a
    retransmission on a slow link.

  • CLEAR_CONFIRMATION (0x17): crossed clearing, or a clear confirmation
    left over from a previous incarnation of a reused logical channel.

In both cases the frame is simply dropped: no state change, no
teardown, nothing freed. Only the noise is a problem.

Fix: drop these two frame types silently. Keep reporting any other,
genuinely unexpected frame type, but through net_warn_ratelimited() so
a misbehaving peer cannot flood the kernel log.

Single commit, applies cleanly to current main.

rose_state3_machine() logs "ROSE: unknown %02X in state 3" at
KERN_WARNING for any frame type it does not handle during data
transfer. Two of them reach that default arm routinely on real AX.25
links and alarm sysops watching the console, even though they are
harmless:

  - CALL_ACCEPTED (0x0F): a late or duplicated Call Accepted that
    arrives after the socket has already moved to STATE_3, typically a
    retransmission on a slow link.

  - CLEAR_CONFIRMATION (0x17): crossed clearing, or a clear confirmation
    left over from a previous incarnation of a reused logical channel.

In both cases the frame is simply dropped: no state change, no
teardown, nothing freed. Only the noise is a problem.

Drop these two frame types silently. Keep reporting any other,
genuinely unexpected frame type, but through net_warn_ratelimited() so
a misbehaving peer cannot flood the kernel log.

Signed-off-by: Bernard Pidoux <bernard.f6bvp@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant