On Mon, Jun 19, 2017 at 3:30 PM, Lawrence Brakmo <bra...@fb.com> wrote:
> Hi Lars,
>
> You would need to modify the source code to support per connection alpha, 
> beta and gamma parameters. Although you can modify the parameters at runtime, 
> they would apply to all connections using Vegas, both existing and new ones.
>
> You may also want to consider using TCP NV (New Vegas) instead. It works 
> better in current networks and servers.
>
> - Lawrence Brakmo
>
>
> On 6/19/17, 6:48 AM, "netdev-ow...@vger.kernel.org on behalf of Lars Erik 
> Storbukås" <netdev-ow...@vger.kernel.org on behalf of 
> storbukas....@gmail.com> wrote:
>
>     I'm looking into how I can modify alpha, beta and gamma parameters for
>     TCP Vegas on a per-socket basis (if at all possible). I want to modify
>     the sending rate per-socket dynamically  (not system wide) when a
>     delay-based algorithm is used.
>
>     Is it possible to modify the parameters of Vegas without modifying the
>     source code of Vegas itself?
>
>     Would setting the (system wide) alpha, beta and gamma parameters be
>     updated immediately? Would an ongoing transmission get the new values
>     of alpha, beta or gamma when they are modified, or is it read only
>     when initialising a Vegas transmission?
>
>     Background for question:
>     I'm working on the implementation of a Deadline Aware, Less than Best
>     Effort. A framework for adding both LBE behaviour and awareness of
>     “soft” delivery deadlines to any congestion control (CC) algorithm,
>     whether loss-based, delay- based or explicit signaling-based. This
>     effectively allows it to turn an arbitrary CC protocol into a
>     scavenger protocol that dynamically adapts its sending rate to network
>     conditions and remaining time before the deadline, to balance
>     timeliness and transmission aggressiveness.
>
>     / Lars Erik Storbukås (storbukas....@gmail.com)
>
>

Thanks for a quick response!

I definetively see New Vegas as working better in current networks and
servers. I do however, need to support Vegas when implementing this.

Do you have any input of the best practice on how to provide (an
optional) per-socket configuration for alpha, beta and gamma
parameters? In other words when modifying the existing Vegas code.

Maybe it's possible to do add a parameters struct like this:

struct vegas {
u8 enabled;
u32 alpha;
u32 beta;
u32 gamma;
}

If vegas.enabled is set, it could use the per-socket parameters, and
if not, then it will use the system wide settings. Does this seem
logical?

Any help is greatly appreciated.

/ Lars Erik Storbukås (storbukas....@gmail.com)

Reply via email to