• Randall Stewart's avatar
    tcp: Address goodput and TLP edge cases. · e834f9a4
    Randall Stewart authored
    There are several cases where we make a goodput measurement and we are running
    out of data when we decide to make the measurement. In reality we should not make
    such a measurement if there is no chance we can have "enough" data. There is also
    some corner case TLP's that end up not registering as a TLP like they should, we
    fix this by pushing the doing_tlp setup to the actual timeout that knows it did
    a TLP. This makes it so we always have the appropriate flag on the sendmap
    indicating a TLP being done as well as count correctly so we make no more
    that two TLP's.
    In addressing the goodput lets also add a "quality" metric that can be viewed via
    blackbox logs so that a casual observer does not have to figure out how good
    of a measurement it is. This is needed due to the fact that we may still make
    a measurement that is of a poorer quality as we run out of data but still have
    a minimal amount of data to make a measurement.
    Reviewed by: tuexen
    Sponsored by: Netflix Inc.
    Differential Revision: https://reviews.freebsd.org/D31076