[realtek] Some CBQ strange problem with RTL8139

Gianfranco Delli Carri gf.dellicarri@ncc.itgate.net
Thu, 24 Aug 2000 00:35:31 +0200


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C00D52.76E23130
Content-Type: text/plain;
	charset="ISO-8859-1"



Hi to all,

I use iproute2 (v.  ss000305) in order to make traffic-shaping with TBF
algorithm.
My gateway is a Linux kernel 2.2.16, no patch applyed, with 2 RTL8139
FastEthernet card. (with rtl8139.c:v1.07 5/6/99 driver)

It works very well if the traffic is standard type (htttp, ftp and so...
with average packet size like 1000 bytes).

Now our custumer has installed a machine with a OpenNap Server (Napster
like). We shape the bandwith to 256Kbps to/from him, but we have encuntered
some problem:

We have same TX error in all the ethernet interface with the CBQ:

eth0      Link encap:Ethernet  HWaddr 00:E0:7D:84:60:FB  
          inet addr:213.254.0.13  Bcast:213.254.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:32565769 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26263399 errors:420 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          Interrupt:15 Base address:0xe800 

eth1      Link encap:Ethernet  HWaddr 00:E0:7D:84:60:FC  
          inet addr:213.254.1.1  Bcast:213.254.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:26811552 errors:0 dropped:0 overruns:0 frame:0
          TX packets:31372465 errors:793 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          Interrupt:11 Base address:0xec0

and the kernel report error like:

eth1:  Tx descriptor 3 is 0008a03c. (queue head)
eth1: MII #32 registers are: 1100 782d 0000 0000 01e1 41e1 0001 0000.
eth0: Transmit timeout, status 0d 0000 media 00.
eth0: Tx queue start entry 109081  dirty entry 109081.
eth0:  Tx descriptor 0 is 0008a03e.
eth0:  Tx descriptor 1 is 0008a03c. (queue head)
eth0:  Tx descriptor 2 is 0008a03c.
eth0:  Tx descriptor 3 is 0008a03c.
eth0: MII #32 registers are: 1100 782d 0000 0000 01e1 41e1 0001 0000.
eth0: Transmit timeout, status 0d 0000 media 00.
eth0: Tx queue start entry 69735  dirty entry 69735.
eth0:  Tx descriptor 0 is 0008a03c.
eth0:  Tx descriptor 1 is 0008a03c.
eth0:  Tx descriptor 2 is 0008a03c.
eth0:  Tx descriptor 3 is 0008a03e. (queue head)


In some circumstances, I think when the error is introduced, we have a
latency time very strange like to 10000/20000 ms.

I have analyzed the traffic generated from the OpenNap machine with a
protocol analyzer and I have discovered that the traffic is all composed by
packet of 63 Byte size.

Have you encountered problem like this ?? Do you think this is a problem
coming from rtl8139.c:v1.07 5/6/99 driver ??

Thank's in advance for your help.

Gianfranco Delli Carri

P.S. My startup script for CBQ for eth0, for eth1 is like to this...:

echo "Start to configuring CBQ for ETH0"
echo
echo "  Attach handle for eth0..."
        tc qdisc add dev eth0 root handle 1: cbq bandwidth 100Mbit allot
1514 cell 8 avpkt 1000 mpu 64

echo "  Setup Root Class for eth0..."
        tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit
rate 100Mbit allot 1514 cell 8 weight 1Mbit \ 	  prio 8 maxburst 20 avpkt
1000

echo "  Configure classid 1:15 for DJNAP.IT ..."
        tc class add dev eth0 parent 1:1 classid 1:15 cbq bandwidth 100Mbit
rate 256Kbit allot 1514 cell 8 weight 25Kbit \ 	  prio 5 maxburst 20 avpkt
100 bounded 

echo "  Set TBF rate to 256Kbps for DJNAP.IT 1:15..."
        tc qdisc add dev eth0 parent 1:15 tbf rate 256Kbit buffer 20Kb/8
limit 40Kb

echo "  Classify the traffic from DJNAP.IT 1:15..."
        tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip
src 213.254.1.80 flowid 1:15
        tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip
src 213.254.1.81 flowid 1:15
        tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip
src 213.254.1.83 flowid 1:15



Bye again.

Gianfranco

------_=_NextPart_001_01C00D52.76E23130
Content-Type: text/html;
	charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">



Some CBQ strange problem with RTL8139




Hi to all,

I use iproute2 (v.  ss000305) in order to make = traffic-shaping with TBF algorithm.
My gateway is a Linux kernel 2.2.16, no patch = applyed, with 2 RTL8139 FastEthernet card. (with rtl8139.c:v1.07 5/6/99 = driver)

It works very well if the traffic is standard type = (htttp, ftp and so... with average packet size like 1000 bytes).

Now our custumer has installed a machine with a = OpenNap Server (Napster like). We shape the bandwith to 256Kbps to/from = him, but we have encuntered some problem:

We have same TX error in all the ethernet interface = with the CBQ:

eth0      Link = encap:Ethernet  HWaddr 00:E0:7D:84:60:FB 
          inet = addr:213.254.0.13  Bcast:213.254.0.255  = Mask:255.255.255.0
          UP = BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX = packets:32565769 errors:0 dropped:0 overruns:0 frame:0
          TX = packets:26263399 errors:420 dropped:0 overruns:0 carrier:0
          = collisions:0 txqueuelen:100
          = Interrupt:15 Base address:0xe800

eth1      Link = encap:Ethernet  HWaddr 00:E0:7D:84:60:FC 
          inet = addr:213.254.1.1  Bcast:213.254.1.255  = Mask:255.255.255.0
          UP = BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX = packets:26811552 errors:0 dropped:0 overruns:0 frame:0
          TX = packets:31372465 errors:793 dropped:0 overruns:0 carrier:0
          = collisions:0 txqueuelen:100
          = Interrupt:11 Base address:0xec0

and the kernel report error like:

eth1:  Tx descriptor 3 is 0008a03c. (queue = head)
eth1: MII #32 registers are: 1100 782d 0000 0000 = 01e1 41e1 0001 0000.
eth0: Transmit timeout, status 0d 0000 media = 00.
eth0: Tx queue start entry 109081  dirty entry = 109081.
eth0:  Tx descriptor 0 is 0008a03e.
eth0:  Tx descriptor 1 is 0008a03c. (queue = head)
eth0:  Tx descriptor 2 is 0008a03c.
eth0:  Tx descriptor 3 is 0008a03c.
eth0: MII #32 registers are: 1100 782d 0000 0000 = 01e1 41e1 0001 0000.
eth0: Transmit timeout, status 0d 0000 media = 00.
eth0: Tx queue start entry 69735  dirty entry = 69735.
eth0:  Tx descriptor 0 is 0008a03c.
eth0:  Tx descriptor 1 is 0008a03c.
eth0:  Tx descriptor 2 is 0008a03c.
eth0:  Tx descriptor 3 is 0008a03e. (queue = head)


In some circumstances, I think when the error is = introduced, we have a latency time very strange like to 10000/20000 = ms.

I have analyzed the traffic generated from the = OpenNap machine with a protocol analyzer and I have discovered that the = traffic is all composed by packet of 63 Byte size.

Have you encountered problem like this ?? Do you = think this is a problem coming from rtl8139.c:v1.07 5/6/99 driver = ??

Thank's in advance for your help.

Gianfranco Delli Carri

P.S. My startup script for CBQ for eth0, for eth1 is = like to this...:

echo "Start to configuring CBQ for = ETH0"
echo
echo "  Attach handle for = eth0..."
        tc qdisc = add dev eth0 root handle 1: cbq bandwidth 100Mbit allot 1514 cell 8 = avpkt 1000 mpu 64

echo "  Setup Root Class for = eth0..."
        tc class = add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate 100Mbit = allot 1514 cell 8 weight 1Mbit \        =   prio 8 maxburst 20 avpkt 1000

echo "  Configure classid 1:15 for DJNAP.IT = ..."
        tc class = add dev eth0 parent 1:1 classid 1:15 cbq bandwidth 100Mbit rate 256Kbit = allot 1514 cell 8 weight 25Kbit \        prio = 5 maxburst 20 avpkt 100 bounded

echo "  Set TBF rate to 256Kbps for = DJNAP.IT 1:15..."
        tc qdisc = add dev eth0 parent 1:15 tbf rate 256Kbit buffer 20Kb/8 limit = 40Kb

echo "  Classify the traffic from DJNAP.IT = 1:15..."
        tc filter = add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip src = 213.254.1.80 flowid 1:15
        tc filter = add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip src = 213.254.1.81 flowid 1:15
        tc filter = add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip src = 213.254.1.83 flowid 1:15



Bye again.

Gianfranco

------_=_NextPart_001_01C00D52.76E23130--