Skip to content

Use upstream interop runner image #2978

@kaukabrizvi

Description

@kaukabrizvi

Security issue notifications

Problem:

Our CI currently relies on a custom forked image of the QUIC interop network simulator. In PR #2972 we bumped the NETWORK_SIMULATOR_REF to include a fix for multi-line jobs -p PID parsing, which resolved recent CI failures. This fix had already been made upstream.

We are still maintaining a custom fork and patch of the network simulator (https://github.com/WesleyRosenblum/quic-network-simulator). This increases maintenance burden and delays adoption of upstream fixes. We should evaluate aligning fully with upstream https://github.com/quic-interop/quic-network-simulator and removing our fork if possible so that the simulator remains up to date.

Need By Date:

N/A

Solution:

  1. Supporting TCP packets in drop-rate scenarios: Upstream drop-rate applies loss to QUIC/UDP traffic. Our fork extends this to TCP (for iperf cross-traffic).
    • Proposed fix: Either (a) stop sending TCP through drop-rate (e.g., run cross-traffic in UDP mode or disable it for these scenarios), or (b) upstream the TCP drop-rate support so we can consume the official image.
  2. Keeping the port number the same during address rebind (#990): The path migration validator in s2n-quic rejects random port reassignment during rebinding, which diverges from interop behavior.
    • Proposed fix: Use the disabled path migration validator in the interop endpoint so the simulator can use its default rebinding behavior without modification.

Requirements / Acceptance Criteria:

  • CI no longer depends on the WesleyRosenblum/quic-network-simulator fork.
  • NETWORK_SIMULATOR_REF points to the official quic-interop/quic-network-simulator image.
  • All required QUIC interop scenarios pass in CI using the upstream simulator.

Out of scope:

N/A

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions