Message ID | 1257262694-16985-1-git-send-email-hannemann@nets.rwth-aachen.de |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | stephen hemminger |
Headers | show |
Although the patch makes sense, it does not fix the bug/effect we were seeing. A netem reorder percentage of 100% will still get packets reordered. (if the netem queue is not empty) hannemann@nets.rwth-aachen.de wrote: > From: Arnd Hannemann <hannemann@nets.rwth-aachen.de> > > We noticed that a netem reorder percentage of 100% will still get packets reordered. > This patch fixes that. > > Signed-off-by: Arnd Hannemann <hannemann@nets.rwth-aachen.de> > --- > tc/tc_util.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tc/tc_util.c b/tc/tc_util.c > index fe2c7eb..2641f2e 100644 > --- a/tc/tc_util.c > +++ b/tc/tc_util.c > @@ -363,8 +363,10 @@ int get_percent(__u32 *percent, const char *str) > return -1; > if (*p && strcmp(p, "%")) > return -1; > - > - *percent = (unsigned) rint(per * max_percent_value); > + if (per == 1.) > + *percent = max_percent_value; > + else > + *percent = (unsigned) rint(per * max_percent_value); > return 0; > } >
On Tue, 03 Nov 2009 17:19:45 +0100 Arnd Hannemann <hannemann@nets.rwth-aachen.de> wrote: > Although the patch makes sense, > it does not fix the bug/effect we were seeing. > A netem reorder percentage of 100% will still get packets reordered. > (if the netem queue is not empty) > > > hannemann@nets.rwth-aachen.de wrote: > > From: Arnd Hannemann <hannemann@nets.rwth-aachen.de> > > > > We noticed that a netem reorder percentage of 100% will still get packets reordered. > > This patch fixes that. > > > > Signed-off-by: Arnd Hannemann <hannemann@nets.rwth-aachen.de> > > --- > > tc/tc_util.c | 6 ++++-- > > 1 files changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/tc/tc_util.c b/tc/tc_util.c > > index fe2c7eb..2641f2e 100644 > > --- a/tc/tc_util.c > > +++ b/tc/tc_util.c > > @@ -363,8 +363,10 @@ int get_percent(__u32 *percent, const char *str) > > return -1; > > if (*p && strcmp(p, "%")) > > return -1; > > - > > - *percent = (unsigned) rint(per * max_percent_value); > > + if (per == 1.) > > + *percent = max_percent_value; > > + else > > + *percent = (unsigned) rint(per * max_percent_value); > > return 0; > > } > > > > If you don't want reordering, don't specify reordering?
Stephen Hemminger wrote: > On Tue, 03 Nov 2009 17:19:45 +0100 > Arnd Hannemann <hannemann@nets.rwth-aachen.de> wrote: > >> Although the patch makes sense, >> it does not fix the bug/effect we were seeing. >> A netem reorder percentage of 100% will still get packets reordered. >> (if the netem queue is not empty) >> >> >> hannemann@nets.rwth-aachen.de wrote: >>> From: Arnd Hannemann <hannemann@nets.rwth-aachen.de> >>> >>> We noticed that a netem reorder percentage of 100% will still get packets reordered. >>> This patch fixes that. >>> >>> Signed-off-by: Arnd Hannemann <hannemann@nets.rwth-aachen.de> >>> --- >>> tc/tc_util.c | 6 ++++-- >>> 1 files changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/tc/tc_util.c b/tc/tc_util.c >>> index fe2c7eb..2641f2e 100644 >>> --- a/tc/tc_util.c >>> +++ b/tc/tc_util.c >>> @@ -363,8 +363,10 @@ int get_percent(__u32 *percent, const char *str) >>> return -1; >>> if (*p && strcmp(p, "%")) >>> return -1; >>> - >>> - *percent = (unsigned) rint(per * max_percent_value); >>> + if (per == 1.) >>> + *percent = max_percent_value; >>> + else >>> + *percent = (unsigned) rint(per * max_percent_value); >>> return 0; >>> } >>> >> > > If you don't want reordering, don't specify reordering? Are you arguing against the correctness of my patch? Regarding, the reordering thingy/bug/effect whatever: We would like to specify reordering with something like this: Please delay 1% of the packets with 5ms. We thought that would be possible with tc qdisc add dev eth0 root netem delay 5m reorder 99% But unfortunately it is not. Any better idea? Best regards, Arnd -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 03 Nov 2009 18:19:19 +0100 Arnd Hannemann <hannemann@nets.rwth-aachen.de> wrote: > Stephen Hemminger wrote: > > On Tue, 03 Nov 2009 17:19:45 +0100 > > Arnd Hannemann <hannemann@nets.rwth-aachen.de> wrote: > > > >> Although the patch makes sense, > >> it does not fix the bug/effect we were seeing. > >> A netem reorder percentage of 100% will still get packets reordered. > >> (if the netem queue is not empty) > >> > >> > >> hannemann@nets.rwth-aachen.de wrote: > >>> From: Arnd Hannemann <hannemann@nets.rwth-aachen.de> > >>> > >>> We noticed that a netem reorder percentage of 100% will still get packets reordered. > >>> This patch fixes that. > >>> > >>> Signed-off-by: Arnd Hannemann <hannemann@nets.rwth-aachen.de> > >>> --- > >>> tc/tc_util.c | 6 ++++-- > >>> 1 files changed, 4 insertions(+), 2 deletions(-) > >>> > >>> diff --git a/tc/tc_util.c b/tc/tc_util.c > >>> index fe2c7eb..2641f2e 100644 > >>> --- a/tc/tc_util.c > >>> +++ b/tc/tc_util.c > >>> @@ -363,8 +363,10 @@ int get_percent(__u32 *percent, const char *str) > >>> return -1; > >>> if (*p && strcmp(p, "%")) > >>> return -1; > >>> - > >>> - *percent = (unsigned) rint(per * max_percent_value); > >>> + if (per == 1.) > >>> + *percent = max_percent_value; > >>> + else > >>> + *percent = (unsigned) rint(per * max_percent_value); > >>> return 0; > >>> } > >>> > >> > > > > If you don't want reordering, don't specify reordering? > > Are you arguing against the correctness of my patch? > > Regarding, the reordering thingy/bug/effect whatever: > We would like to specify reordering with something like this: > Please delay 1% of the packets with 5ms. > > We thought that would be possible with > tc qdisc add dev eth0 root netem delay 5m reorder 99% > > But unfortunately it is not. Any better idea? > I think the problem isn't in iproute utilities but in the code inside netem kernel module.
diff --git a/tc/tc_util.c b/tc/tc_util.c index fe2c7eb..2641f2e 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -363,8 +363,10 @@ int get_percent(__u32 *percent, const char *str) return -1; if (*p && strcmp(p, "%")) return -1; - - *percent = (unsigned) rint(per * max_percent_value); + if (per == 1.) + *percent = max_percent_value; + else + *percent = (unsigned) rint(per * max_percent_value); return 0; }