Bloaters (and particularly Eric)

I will try to not confuse the list, as this question is about host behaviors 
rather than middlebox behaviors. Having said that......

I am playing around with some application code that would benefit from pacing. 
The example I have in mind is MPEG-DASH style vide, but any type of ABR flow 
would probably benefit from the scheme I have in mind. I have done some work 
with client based pacing via RWND, but it is very clunky.

I am thinking of having the server tell the kernel the rate at which it wants 
data delivered to the client. (The client would probably tell the server via an 
HTTP pragma, but that is a separate can of worms....) So, the HTTP server would 
tell the kernel that it wants to deliver the TCP data at or below a certain max 
rate. There are currently hooks in sch_fq for the TCP layer to set 
sk_pacing_rate. It seems that I would need to add another pacing variable and 
have the data sent at the min of q->flow_max_rate, skb->sk->sk_pacing_rate, and 
this new app_pacing_rate. In other words, the old code


rate<http://lxr.free-electrons.com/ident?i=rate> = q->flow_max_rate;

if (skb<http://lxr.free-electrons.com/ident?i=skb>->sk)

   rate<http://lxr.free-electrons.com/ident?i=rate> = 
min<http://lxr.free-electrons.com/ident?i=min>(skb<http://lxr.free-electrons.com/ident?i=skb>->sk->sk_pacing_rate,
 rate<http://lxr.free-electrons.com/ident?i=rate>);

would become


rate<http://lxr.free-electrons.com/ident?i=rate> = q->flow_max_rate;

if (skb<http://lxr.free-electrons.com/ident?i=skb>->sk)

{

    rate<http://lxr.free-electrons.com/ident?i=rate> = 
min<http://lxr.free-electrons.com/ident?i=min>(skb<http://lxr.free-electrons.com/ident?i=skb>->sk->sk_pacing_rate,
 rate<http://lxr.free-electrons.com/ident?i=rate>);

    if (skb->sk->app_pacing_rate)

        rate = (min(skb->sk->app_pacing_rate, rate);

}


Thoughts?

Bill VerSteeg
_______________________________________________
Bloat mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/bloat

Reply via email to