diff options
author | Eric Dumazet <edumazet@google.com> | 2013-09-19 09:10:03 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-09-20 14:41:02 -0400 |
commit | 3e1e3aae1f5d4e8e5edb7e332f6e265597cc5b0a (patch) | |
tree | 26737c73709aa3a29ad1c435e6bb7cd83126f4c6 /net/sched/sch_generic.c | |
parent | 118a7b0ede580f3c5553028301001d46f8eede99 (diff) |
net_sched: add u64 rate to psched_ratecfg_precompute()
Add an extra u64 rate parameter to psched_ratecfg_precompute()
so that some qdisc can opt-in for 64bit rates in the future,
to overcome the ~34 Gbits limit.
psched_ratecfg_getrate() reports a legacy structure to
tc utility, so if actual rate is above the 32bit rate field,
cap it to the 34Gbit limit.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_generic.c')
-rw-r--r-- | net/sched/sch_generic.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index a74e278654a..e7121d29c4b 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c @@ -910,11 +910,12 @@ void dev_shutdown(struct net_device *dev) } void psched_ratecfg_precompute(struct psched_ratecfg *r, - const struct tc_ratespec *conf) + const struct tc_ratespec *conf, + u64 rate64) { memset(r, 0, sizeof(*r)); r->overhead = conf->overhead; - r->rate_bytes_ps = conf->rate; + r->rate_bytes_ps = max_t(u64, conf->rate, rate64); r->linklayer = (conf->linklayer & TC_LINKLAYER_MASK); r->mult = 1; /* |