Fw: [Fwd: Re: TCNG]

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Martin,
I tried the suggested script, but it doesn't seem to be working,
 
I adapted it along the lines of
#include "fields.tc"
#include "ports.tc"


#define MY_PDA 10.1.1.8
#define MY_LAPTOP 10.1.1.20
#define INTERFACE eth1


dev INTERFACE {
egress{
class ( <$video> ) if tcp_sport == 1755 && ip_dst == MY_LAPTOP
;
class ( <$video> ) if tcp_sport == 554  && ip_dst == MY_LAPTOP
;
class ( <$video> ) if udp_sport == 1755 && ip_dst == MY_LAPTOP
;
class ( <$video> ) if udp_sport == 554  && ip_dst == MY_LAPTOP
;
class ( <$other> ) if 1;

htb() {
class ( rate 3500kbps, ceil 3500kbps ) {
$video = class ( rate 30kbps, ceil 30kbps ) { sfq; } ;
$laptop = class ( rate 50kbps, ceil 1500kbps ) { sfq; } ;
$pda = class ( rate 50kbps, ceil 50kbps ) { sfq; } ;
$other = class ( rate 150kbps, ceil 150kbps ) { sfq; } ;
}
}
}
}
The BW of the video stream on the MY_LAPTOP device is roughly 150 kbps, suggesting that is has not been pick up by the criteria. I use this:
 
#!/bin/sh


IPTABLES=/sbin/iptables

# ALL LINES BELOW ARE NAT ROUTING

# flush out all old rules


$IPTABLES -F -t nat

# turn on NAT (IP MASQ for outgoing packets)

$IPTABLES -A POSTROUTING -t nat -o eth0 -j MASQUERADE

# enable IP Forwarding (of incoming packets)

echo 1 > /proc/sys/net/ipv4/ip_forward

route add default gw 10.0.0.1


# WIRELESS CARD SETUP
iwconfig eth1 mode ad-hoc
iwconfig eth1 essid BKR_FYP
To setup my masquerading....
I'm puzzled, can you
suggest a way to start debuggin this?
 
Again many
thanks,
 
Barry.
 
 
 
 
 
 
 




-------- Original Message --------
Subject: Re: TCNG
Date: Wed, 3 Mar 2004 22:55:50 -0600 (CST)
From: Martin A. Brown
To: Barry Rooney
CC: lartc@xxxxxxxxxxxxxxx
References:

<4045B66A.5000306@xxxxxxxxxxxxxxxxxxxxx>



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@xxxxxxxxxxxxxx

_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/









--- Begin Message ---
--------- Original Message --------
From: "Barry Rooney" <brooney@xxxxxxxxxxxxxxxxxxxxx>
To: "brooney@xxxxxxxxxx" <brooney@xxxxxxxxxx>
Subject: [Fwd: Re: [LARTC] TCNG]
Date: 09/03/04 22:04




-------- Original Message --------
Subject: Re: [LARTC] TCNG
Date: Wed, 3 Mar 2004 22:55:50 -0600 (CST)
From: Martin A. Brown <mabrown-lartc@xxxxxxxxxxxxxx>
To: Barry Rooney <brooney@xxxxxxxxxxxxxxxxxxxxx>
CC: lartc@xxxxxxxxxxxxxxx
References: <E1AxtoI-0006tx-00@xxxxxxxxxxxxxxxxxxxxxxxx>
<Pine.LNX.4.58.0403030011260.29047@xxxxxxxxxxxxxxxxxxxxxxxxxx>
<4045B66A.5000306@xxxxxxxxxxxxxxxxxxxxx>



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@xxxxxxxxxxxxxx

_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/










--- End Message ---

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux