Skip to content

HyStart implementation Linux vs. picoquic #1694

@joergdeutschmann-i7

Description

@joergdeutschmann-i7

We just compared the Linux and picoquic HyStart implementation.
https://github.com/torvalds/linux/blob/ea5f6ad9ad9645733b72ab53a98e719b460d36a6/net/ipv4/tcp_cubic.c#L427-L445

int picoquic_hystart_test(picoquic_min_max_rtt_t* rtt_track, uint64_t rtt_measurement, uint64_t packet_time, uint64_t current_time, int is_one_way_delay_enabled)

We wondered to which extend the picoquic implementation is aligned with the Linux code.

Two specific questions:

  1. rtt_track->rtt_filtered_min > rtt_track->sample_max) {
    rtt_track->rtt_filtered_min = rtt_track->sample_max;

    Why is rtt_track->rtt_filtered_min compared/set to rtt_track->sample_max and not rtt_track->sample_min?

  2. In Linux, the delay threshold is ca->delay_min >> 3 while in picoquic there is delta_max = rtt_track->rtt_filtered_min / 4. We wondered why these dividers are different.

PS: Sorry for posting three issues in a row :-)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions