Hi, I’m trying to set up a Diffserv test bed and having a few problems. Bellow is the summary Experiment: Diffserv Test Bed. Aim: To validate that expedited forwarding per-hop-behaviors is able to provide a guaranteed bandwidth together with a very small delay and jitter even in a highly congested network. Environment: 5 Work stations Fore ground and background and receiver workstation: PIII Core and Edge routers: PII, 128 Megs All installed with Red Hat8, kernel 2.4.18.-14 QoS modules are configured as modules Network layout: Please see attached diagram Traffic generation using Iperf sending to 2 different ports on the receiver work station, 5001 and 4000. Priority traffic is marked with the value of 0xb8 using Iperf Scripts: Following scripts are running on the Core and Edge router. #!/bin/sh # # Diffserv Core device: EF using CBQ # Clear the existing qdisc configuration tc qdisc del dev eth1 root # Attach DSMARK qdisc to root and copy TOS byte into skb->tc_index tc qdisc add dev eth1 handle 1:0 root dsmark indices 64 set_tc_index # Add filter to root to mask out ECN bits and # Extract the DSCP field by shifting to the right two bits # ________ # TOS / /\ # 0xb8 -> | 10111000 # | |||||| # \/vvvvvv DSCP # 00101110 -> 0x2e # tc filter add dev eth1 parent 1:0 \ protocol ip prio 1 tcindex mask 0xfc shift 2 # Attach classful CBQ qdisc to 2:0 (2:0 is a child of root node 1:0) tc qdisc add dev eth1 parent 1:0 handle 2:0 cbq \ bandwidth 10Mbit cell 8 avpkt 1000 mpu 64 # ------------------------- # EF Class (2:1) # ------------------------- # CBQ bounded and isolated at EF Rate tc class add dev eth1 parent 2:0 classid 2:1 cbq \ bandwidth 10Mbit rate 2000Kbit avpkt 1000 prio 1 \ bounded isolated allot 1514 weight 1 maxburst 10 # PFIFO buffer management scheme tc qdisc add dev eth1 parent 2:1 pfifo limit 5 tc filter add dev eth1 parent 2:0 protocol ip prio 1 \ handle 0x2e tcindex classid 2:1 pass_on # ------------------------- # BE class (2:2) # ------------------------- # CBQ with borrow tc class add dev eth1 parent 2:0 classid 2:2 cbq \ bandwidth 10Mbit rate 4Mbit avpkt 1000 prio 7 \ allot 1514 weight 1 maxburst 21 borrow split 2:0 defmap 0xffff # RED buffer management scheme tc qdisc add dev eth1 parent 2:2 red limit 60KB min 15KB max 45KB \ burst 20 avpkt 1000 bandwidth 10Mbit probability 0.4 tc filter add dev eth1 parent 2:0 protocol ip prio 2 \ handle 0 tcindex mask 0 classid 2:2 pass_on ----------------------------------------------------------------------- Script running on the Edge device # Diffserv Edge device: EF using CBQ tc qdisc del dev eth1 root tc qdisc add dev eth1 handle 1:0 root cbq \ bandwidth 10Mbit cell 8 avpkt 1000 mpu 64 tc class add dev eth1 parent 1:0 classid 1:1 cbq \ bandwidth 10Mbit rate 3000Kbit avpkt 1000 prio 1 \ bounded isolated allot 1514 weight 1 maxburst 10 tc class add dev eth1 parent 1:0 classid 1:2 cbq \ bandwidth 10Mbit rate 5Mbit avpkt 1000 prio 7 \ allot 1514 weight 1 maxburst 21 borrow split 1:0 defmap 0xffff tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 \ match ip src 192.168.1.0/24 \ match ip dport 5001 16 \ police rate 3Mbit burst 20K drop \ flowid 1:1 tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 \ match ip src 192.168.1.0/24 \ flowid 1:2 tc qdisc add dev eth1 parent 1:2 handle 70:0 dsmark indices 64 tc qdisc add dev eth1 parent 1:1 handle 50:0 dsmark indices 64 tc class change dev eth1 classid 50:0 dsmark mask 0x3 value 0xb8 tc class change dev eth1 classid 70:0 dsmark mask 0x3 value 0x00 tc qdisc add dev eth1 parent 50:0 pfifo limit 5 tc qdisc add dev eth1 parent 70:0 red \ limit 60KB min 15KB max 45KB burst 20 \ avpkt 1000 bandwidth 10Mbit probability 0.4 Problem: When enable the Diffserv by running the corresponding tc scripts on Edge and Core router, it appeared that there was very high packet lost and no bandwidth guarantee has taken place. Checked: Compiled tc with Diffserv enabled Used the kernel with #define PSCHED_CLOCK_SOURCE PSCHED_CPU in linux/include/net/sched/pkt_sched.h Used the kernel with #define Hz 1500 in linux/include/asm/param.h Your help is greatly appreciated. Vince UTS CRICOS Provider Code: 00099F DISCLAIMER ======================================================================== This email message and any accompanying attachments may contain confidential information. If you are not the intended recipient, do not read, use, disseminate, distribute or copy this message or attachments. If you have received this message in error, please notify the sender immediately and delete this message. Any views expressed in this message are those of the individual sender, except where the sender expressly, and with authority, states them to be the views the University of Technology Sydney. Before opening any attachments, please check them for viruses and defects. ========================================================================
Attachment:
Network diagram.gif
Description: GIF image