mbox series

[net-next,0/3] netem: add nsec scheduling and slot feature

Message ID 1510088376-5527-1-git-send-email-dave.taht@gmail.com
Headers show
Series netem: add nsec scheduling and slot feature | expand

Message

Dave Taht Nov. 7, 2017, 8:59 p.m. UTC
This patch series converts netem away from the old "ticks" interface and
userspace API, and adds support for a new "slot" feature intended to
emulate bursty macs such as WiFi and LTE better.

Dave Taht (3):
  netem: convert to qdisc_watchdog_schedule_ns
  netem: add uapi to express delay and jitter in nanosec
  netem: support delivering packets in delayed time slots

 include/uapi/linux/pkt_sched.h |  10 +++
 net/sched/sch_netem.c          | 144 ++++++++++++++++++++++++++++++++---------
 2 files changed, 125 insertions(+), 29 deletions(-)

Comments

Stephen Hemminger Nov. 8, 2017, 12:26 a.m. UTC | #1
On Tue,  7 Nov 2017 12:59:33 -0800
Dave Taht <dave.taht@gmail.com> wrote:

> This patch series converts netem away from the old "ticks" interface and
> userspace API, and adds support for a new "slot" feature intended to
> emulate bursty macs such as WiFi and LTE better.
> 
> Dave Taht (3):
>   netem: convert to qdisc_watchdog_schedule_ns
>   netem: add uapi to express delay and jitter in nanosec
>   netem: support delivering packets in delayed time slots
> 
>  include/uapi/linux/pkt_sched.h |  10 +++
>  net/sched/sch_netem.c          | 144 ++++++++++++++++++++++++++++++++---------
>  2 files changed, 125 insertions(+), 29 deletions(-)
> 

Dave, thanks for the patch.
One issue is that it needs to keep binary compatibility both for kernel and iproute.
That means that users of new kernel should be able to use old versions of iproute
without any visible impact (and vice versa).

For the kernel, that means if new attributes are not present the old attributes
would be used. For iproute2 that means send both new and old versions.
Dave Taht Nov. 8, 2017, 9:45 p.m. UTC | #2
On Tue, Nov 7, 2017 at 4:26 PM, Stephen Hemminger
<stephen@networkplumber.org> wrote:
> On Tue,  7 Nov 2017 12:59:33 -0800
> Dave Taht <dave.taht@gmail.com> wrote:
>
>> This patch series converts netem away from the old "ticks" interface and
>> userspace API, and adds support for a new "slot" feature intended to
>> emulate bursty macs such as WiFi and LTE better.
>>
>> Dave Taht (3):
>>   netem: convert to qdisc_watchdog_schedule_ns
>>   netem: add uapi to express delay and jitter in nanosec
>>   netem: support delivering packets in delayed time slots
>>
>>  include/uapi/linux/pkt_sched.h |  10 +++
>>  net/sched/sch_netem.c          | 144 ++++++++++++++++++++++++++++++++---------
>>  2 files changed, 125 insertions(+), 29 deletions(-)
>>
>
> Dave, thanks for the patch.
> One issue is that it needs to keep binary compatibility both for kernel and iproute.
> That means that users of new kernel should be able to use old versions of iproute
> without any visible impact (and vice versa).
>
> For the kernel, that means if new attributes are not present the old attributes
> would be used.

For the kernel patchset you are commenting on, this was the case. There was no
way to send via an old iproute2 a jitter or delay value that would
trigger sending
the new attributes, although the old api has severe rounding errors as you get
down to a few us.

I just sent a kernel v2 that always sends the old and new attributes.

>For iproute2 that means send both new and old versions.

This, in the iproute2 patchset, didn't, as I assumed new versions of
iproute2 would only be used with newer kernels. I'll respin that.

I did want to somehow, one day, obsolete ticks, but I guess
that is not possible.