<P>Hi All,</P> <P>I''m using TCNG to restrict certain types of traffic to certain ip addresses using a Linux router, and some masq''d computers behind it.</P> <P>Unfortunately something like this...</P> <P>#include "fields.tc" <BR>#include "ports.tc"</P> <P>#define INTERFACE eth1 </P> <P>dev INTERFACE {<BR> egress { </P> <P> /* In class selection path, the filters come first! DSmark */ <BR> class ( <$video> ) if tcp_sport == 554 && ip_dst =10.1.1.10;<BR> class ( <$other> ) if 1 ; </P> <P> /* section in which we configure the qdiscs and classes */ </P> <P> htb () { <BR> class ( rate 3500kbps, ceil 3500kbps ) { <BR> <BR> $video = class ( rate 50kbps, ceil 50kbps ) { sfq; } ;<BR> $other = class ( rate 1000kbps, ceil 3450kbps ) { sfq; } ;<BR> <BR> }<BR> }<BR> }<BR>}</P> <P>Doesn''t seem to be working...</P> <P>Any ideas</P> <P>Thanks.</P> <P> </P> _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Hello Barry, : I''m using TCNG to restrict certain types of traffic to certain ip : addresses using a Linux router, and some masq''d computers behind it. You didn''t tell us anything about the networks behind eth1. So, is this host running as an Internet access device? : #define INTERFACE eth1 : : dev INTERFACE { : egress { : : /* In class selection path, the filters come first! DSmark */ : class ( <$video> ) if tcp_sport == 554 && ip_dst == 10.1.1.10; : class ( <$other> ) if 1 ; : : /* section in which we configure the qdiscs and classes */ : : htb () { : class ( rate 3500kbps, ceil 3500kbps ) { : : $video = class ( rate 50kbps, ceil 50kbps ) { sfq; } ; : $other = class ( rate 1000kbps, ceil 3450kbps ) { sfq; } ; : : } : } : } : } : Doesn''t seem to be working... Are you able to tell if traffic is classified at all into any classes ("tc -s class show dev eth1")? What happens if you [off-hours] drop your maximum rate (3500kbps) to something much slower (2000kbps)? Are you actually shaping traffic? Presumably, given the above configuration, the host 10.1.1.10 is a client and is located on the network reachable via eth1. The Internet (the source of the tcp/554 packets) must be reachable on another interface. -Martin -- Martin A. Brown --- SecurePipe, Inc. --- mabrown@securepipe.com _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Hi Martin, Eth0 is connected to a private network which has on it a Media Server streaming rtsp files Eth1 is a wireless card on an ad-hoc network with a laptop, a pda, and a desktop. The idea is then to imitate different QoS levels to the different devices, the idea being that the pda shouldn''t need as much bw as the desktop etc. So the three devices get dhcp leases dependant on their mac address, and then their ip address is used to identify them and (hopefully) tc will then allow me to create sfqs for each device. I have tested the devices without any shaping, and also with shaping of all rtsp/mms protocol based traffic to the 50kb class. This works and has been confirmed by the stats on the media client, it can be quite clearly seen any way the video starts to jump and stutter. However I have been unable to get the shaping to only occur on one device, maybe the laptop for example whose address is 10.1.1.10 Martin A. Brown wrote:>Hello Barry, > > : I''m using TCNG to restrict certain types of traffic to certain ip > : addresses using a Linux router, and some masq''d computers behind it. > >You didn''t tell us anything about the networks behind eth1. So, is this >host running as an Internet access device? > > : #define INTERFACE eth1 > : > : dev INTERFACE { > : egress { > : > : /* In class selection path, the filters come first! DSmark */ > : class ( <$video> ) if tcp_sport == 554 && ip_dst == 10.1.1.10; > : class ( <$other> ) if 1 ; > : > : /* section in which we configure the qdiscs and classes */ > : > : htb () { > : class ( rate 3500kbps, ceil 3500kbps ) { > : > : $video = class ( rate 50kbps, ceil 50kbps ) { sfq; } ; > : $other = class ( rate 1000kbps, ceil 3450kbps ) { sfq; } ; > : > : } > : } > : } > : } > > : Doesn''t seem to be working... > >Are you able to tell if traffic is classified at all into any classes >("tc -s class show dev eth1")? > >What happens if you [off-hours] drop your maximum rate (3500kbps) to >something much slower (2000kbps)? Are you actually shaping traffic? > >Presumably, given the above configuration, the host 10.1.1.10 is a client >and is located on the network reachable via eth1. The Internet (the >source of the tcp/554 packets) must be reachable on another interface. > >-Martin > > >_______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Barry, : Eth0 is connected to a private network which has on it a Media Server : streaming rtsp files Eth1 is a wireless card on an ad-hoc network with : a laptop, a pda, and a desktop. Understood. : The idea is then to imitate different QoS levels to the different : devices, the idea being that the pda shouldn''t need as much bw as the : desktop etc. So the three devices get dhcp leases dependant on their : mac address, and then their ip address is used to identify them and : (hopefully) tc will then allow me to create sfqs for each device. Understood. : I have tested the devices without any shaping, and also with shaping of : all rtsp/mms protocol based traffic to the 50kb class. This works and : has been confirmed by the stats on the media client, it can be quite : clearly seen any way the video starts to jump and stutter. OK. : However I have been unable to get the shaping to only occur on one : device, maybe the laptop for example whose address is 10.1.1.10 I don''t really understand what you mean here. Have you tried creating separate classes for each device? sfq doesn''t do any shaping htb (classes) perform shaping So, here''s a fractured/partial tcng config: #define MY_PDA 10.1.1.8 #define MY_LAPTOP 10.1.1.10 class ( <$video> ) if tcp_sport == PORT_RTSP && ip_dst == MY_LAPTOP ; class ( <$laptop> ) if ip_dst == MY_LAPTOP ; class ( <$pda>) if ip_dst == MY_PDA ; class ( <$other>) if 1 ; htb() { class ( rate 3500kbps, ceil 3500kbps ) { $video = class ( rate 50kbps, ceil 50kbps ) { sfq; } ; $laptop = class ( rate 50kbps, ceil 1500kbps ) { sfq; } ; $pda = class ( rate 50kbps, ceil 50kbps ) { sfq; } ; $other = class ( rate 200kbps, ceil 3500kbps ) { sfq; } ; } } I can''t tell if this does what you''d like, but maybe it does. Good luck, -Martin -- Martin A. Brown --- SecurePipe, Inc. --- mabrown@securepipe.com _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/