Skip to content

Receiving Stateless Resets on Shared Ports Doesn't Work #3225

Open
@nibanks

Description

@nibanks

Describe the bug

When a client doesn't share a port, we do no lookup based on CID to direct a packet to the correct connection. In this case, stateless resets work just fine even though they don't have the correct CID in the header (because the server didn't know it; it was stateless!).

But, when multiple clients share a port, the stateless reset packet will be dropped because we try do a lookup based on CID and can't find a match.

I realized this while discussing some HW offload stuff on https://github.com/microsoft/quic-offloads.

Affected OS

  • Windows
  • Linux
  • macOS
  • Other (specify below)

Additional OS information

No response

MsQuic version

main

Steps taken to reproduce bug

Run stateless reset tests on shared client ports.

Expected behavior

Immediately disconnect when stateless reset packet is received.

Actual outcome

Client has to wait on timeout instead.

Additional details

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: CoreRelated to the shared, core protocol logic

    Type

    Projects

    Status

    Should be written

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions