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/