On Wed, Nov 8, 2017 at 3:24 PM, Stephen Hemminger
<step...@networkplumber.org> wrote:
> On Wed,  8 Nov 2017 15:12:27 -0800
> Dave Taht <dave.t...@gmail.com> wrote:
>
>> --- a/net/sched/sch_netem.c
>> +++ b/net/sched/sch_netem.c
>> @@ -819,6 +819,8 @@ static const struct nla_policy 
>> netem_policy[TCA_NETEM_MAX + 1] = {
>>       [TCA_NETEM_LOSS]        = { .type = NLA_NESTED },
>>       [TCA_NETEM_ECN]         = { .type = NLA_U32 },
>>       [TCA_NETEM_RATE64]      = { .type = NLA_U64 },
>> +     [TCA_NETEM_LATENCY64]   = { .type = NLA_S64 },
>> +     [TCA_NETEM_JITTER64]    = { .type = NLA_S64 },
>>  };
>>
>>  static int parse_attr(struct nlattr *tb[], int maxtype, struct nlattr *nla,
>> @@ -916,6 +918,12 @@ static int netem_change(struct Qdisc *sch, struct 
>> nlattr *opt)
>>               q->rate = max_t(u64, q->rate,
>>                               nla_get_u64(tb[TCA_NETEM_RATE64]));
>>
>> +     if (tb[TCA_NETEM_LATENCY64])
>> +             q->latency = nla_get_s64(tb[TCA_NETEM_LATENCY64]);
>> +
>> +     if (tb[TCA_NETEM_JITTER64])
>> +             q->jitter = nla_get_s64(tb[TCA_NETEM_JITTER64]);
>> +
>>       if (tb[TCA_NETEM_ECN])
>>               q->ecn = nla_get_u32(tb[TCA_NETEM_ECN]);
>>
>
> Although some of the maths use signed 64 bit.
> I think the API should be unsigned 64 bit.  Or do you want to allow
> negative latency?

Personally I find things simpler to reason about when signed, and the
userspace side of the code (currently) offers the ability to generically
have signed time values for "other stuff".

The constrained range of 63 vs 64 bits we can debate in 272 years or so.

I'll let eric cast the tie vote.

-- 

Dave Täht
CEO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-669-226-2619

Reply via email to