netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Russell Stuart <russell-tcatm@stuart.id.au>
To: Patrick McHardy <kaber@trash.net>
Cc: hadi@cyberus.ca, netdev@vger.kernel.org,
	David Miller <davem@davemloft.net>
Subject: Re: [PATCH	REPOST	1/2]	NET:	Accurate	packet	scheduling	for	ATM/ADSL (kernel)
Date: Sun, 21 Jan 2007 17:45:27 +1000	[thread overview]
Message-ID: <1169365528.3866.71.camel@ras.pc.stuart.local> (raw)
In-Reply-To: <45B1D715.8010609@trash.net>

On Sat, 2007-01-20 at 09:47 +0100, Patrick McHardy wrote:
> Russell Stuart wrote:
> > b.  There is no compatibility problem.
> 
> Again, (b). You seem to have something in mind, it would be
> easier if you would just explain exactly where you think there
> is a problem.

I though I had :(.

Consider:
  Line speed is 256 K bits/sec.
  Protocol: ADSL/ATM (PPPoE VC/LLC) (Overhead is 42 bytes + cell pad).
  Kernel HZ is 1000.
  cell_log = 8.

Below is a table which shows the RTAB that would be sent
to a pre-STAB kernel:

              IP Datagram   Packet Size       Packet Size   Ticks to
              Packet Size   Seen by Kernel    On the Wire   Send packet
  RTAB[0]=2    -14..-7          0..7             53..53       1.656
  RTAB[1]=2     -6..1           8..15            53..53       1.656
  RTAB[2]=3      2..9          16..23            53..106      3.313
  RTAB[3]=3     10..17         24..31           106..106      3.313
   ...  
  RTAB[9]=5     58..63         72..79           106..159      4.968
  RTAB[10]=5    64..71         80..87           159..159      4.968

Below is the same thing for a post-STAB kernel:

              IP Datagram   Packet Size       Packet Size   Ticks to
              Packet Size   Seen by Kernel    On the Wire   Send packet
  RTAB[0]=0 - Undefined as no STAB entry is 0.
  RTAB[1]=0 - Undefined as no STAB entry is 0.
   ...
  RTAB[5]=0 - Undefined as no STAB entry is 0.
  RTAB[6]=2    -14..-7          0..7             53..53       1.656
  RTAB[7]=2     -6..1           8..15            53..53       1.656
  RTAB[8]=3      2..9          16..23            53..106      3.313
  RTAB[9]=3     10..17         24..31           106..106      3.313
   ...  
  RTAB[15]=5    58..63         72..79           106..159      4.968
  RTAB[16]=5    64..71         80..87           159..159      4.968

The two RTAB's are different.  Thus you must send 
different RTAB's to pre-STAB and post-STAB kernels.  
How is "tc" to decide which one to send?  I did add 
code that checked uname once to solve a very 
similar problem in "tc", but that got my wrist 
slapped.

Replacing RTAB with STAB would solve the problem, BTW,
as the post-STAB kernel would ignore the RTAB.

It would also solve another problem.  The granularity
of RTAB sucks for VOIP (my area of interest).  Eg on
a 2 M bit link, one ATM cell takes 0.0848 ticks to 
send, two cells 0.170 ticks, three cells 0.2544 ticks.  
RTP voice packets are typically two or three cells.  
RTAB only holds an integral number of ticks of course, 
making the current traffic control engine useless for 
VOIP links with speeds of around 2.5M bit or above.
This could be fixed in an STAB implementation.


  reply	other threads:[~2007-01-21  7:45 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-16 23:34 [PATCH REPOST 1/2] NET: Accurate packet scheduling for ATM/ADSL (kernel) Russell Stuart
2006-10-17 13:07 ` jamal
2006-10-19  3:41   ` David Miller
2006-10-19 14:38   ` Patrick McHardy
2006-10-20  0:49     ` jamal
2006-10-20  8:54       ` Patrick McHardy
2006-10-23 11:22     ` Russell Stuart
2006-10-23 12:39       ` Patrick McHardy
2006-10-23 21:54         ` Russell Stuart
2006-10-24 16:19           ` Patrick McHardy
2006-10-24 20:00             ` Jesper Dangaard Brouer
2006-10-24 23:46             ` Russell Stuart
2006-11-30 13:07               ` Patrick McHardy
2007-01-17 23:07                 ` Russell Stuart
2007-01-18  4:05                   ` Patrick McHardy
2007-01-18  6:16                     ` Russell Stuart
     [not found]                       ` <45AF5C02.1010005@trash.net>
2007-01-19  3:11                         ` Russell Stuart
2007-01-19 12:19                           ` Patrick McHardy
2007-01-20  3:25                             ` Russell Stuart
2007-01-20  8:47                               ` Patrick McHardy
2007-01-21  7:45                                 ` Russell Stuart [this message]
2007-01-24 16:38                                   ` Patrick McHardy
2007-01-24 22:32                                     ` Russell Stuart
2007-01-25  0:06                                       ` Patrick McHardy
2007-01-25  0:55                                         ` Russell Stuart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1169365528.3866.71.camel@ras.pc.stuart.local \
    --to=russell-tcatm@stuart.id.au \
    --cc=davem@davemloft.net \
    --cc=hadi@cyberus.ca \
    --cc=kaber@trash.net \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).