No description
Find a file
Jose Ignacio Naranjo Hernández 52d6b8b9ee Fix a bug when calculating ticks_per_usec
I've noticed a wrong behavior when setting up some delays in a netem
qdisc.  I will try to make the things easier for the reader describing
the calls path.

To set up a delay (or jitter...) I use 'rtnl_netem_set_delay' which
requires an int parameter that tells the delay in micro seconds. Inside
this func, the delay is set up with the help of 'nl_us2ticks', which is
just an arithmetic operation (us * ticks_per_usec), where us is the
input parameter and ticks_per_usec is a global variable initialized in
'get_psched_settings'. And here is the problem:

If this variable is going to be calculated using '/proc/net/psched', I
think the file scan is not done properly.

I don't understand what the meaning of the asterisk is here:

int r = fscanf(fd, "%08x%08x%08x%*08x", &tick, &us, &nom);
if (4 == r && nom == 1000000 && !got_tick)
        ticks_per_usec = (double)tick/(double)us;

The execution path never gets in the if statement, because r is always
3, and if the fourth parameter is read (avoiding the asterisk), there is
no variable to store it in, so it comes a segv. In my opinion we can get
rid of the if statement, because I think the proc psched file has always
a fixed format of 4 parameters, and 'nom' is always 1000000
(http://lxr.linux.no/#linux+v2.6.32/net/sched/sch_api.c#L1678).

Find attached a patch I did, if I am correct.
2010-03-10 16:18:54 +01:00
doc CLI - Command Line Interface Library 2009-12-16 16:20:46 +01:00
include new function nfnl_queue_msg_send_verdict_payload() 2010-03-10 16:02:01 +01:00
lib Fix a bug when calculating ticks_per_usec 2010-03-10 16:18:54 +01:00
m4 Move to automake-based build 2009-06-23 01:24:51 +02:00
src CLI - Command Line Interface Library 2009-12-16 16:20:46 +01:00
tests - Reworked the classifier interface. 2009-09-02 18:31:14 +02:00
.gitignore Move to automake-based build 2009-06-23 01:24:51 +02:00
autogen.sh Move to automake-based build 2009-06-23 01:24:51 +02:00
ChangeLog Pushed to pre8 due to wrong version string in pre7 2007-11-21 18:24:11 +01:00
configure.in CLI - Command Line Interface Library 2009-12-16 16:20:46 +01:00
COPYING Initial import 2007-09-15 01:28:01 +02:00
libnl-2.0.pc.in Move to automake-based build 2009-06-23 01:24:51 +02:00
Makefile.am Move to automake-based build 2009-06-23 01:24:51 +02:00