Thread: [mpls-linux-general] MPLS and scheduling for QoS
Status: Beta
Brought to you by:
jleu
From: lucapilosu\@libero\.it <luc...@li...> - 2008-05-13 12:22:01
|
Hi, I'm testing MPLS with linux schedulers in order to do some reservation and shaping in case of congestion on the default routes. Now I'm working on a in-line testbed (just to get familiar with schedulers), belonging to the bigger one of MPLS Linux Lab examples by Irina Dumitrascu and Adrian Popa. It is like this: A3----------E1----------E3----------E4----------A2 (LER) (LSR) (LER) I've made the first tries with only one HTB scheduler on E1, sending 3 flows from A3 to A2 marked differently in the DSCP field. My configuration is the following: key_1=`mpls nhlfe add key 0 instructions ds2exp 0xf 0x06 0x3 exp2tc 0x3 0x1 push gen 500 nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` key_2=`mpls nhlfe add key 0 instructions ds2exp 0xf 0x07 0x6 exp2tc 0x6 0x2 push gen 500 nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` key_3=`mpls nhlfe add key 0 instructions exp2tc 0x0 0x3 push gen 500 nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x06 -j mpls --nhlfe $key_1 iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x07 -j mpls --nhlfe $key_2 iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x00 -j mpls --nhlfe $key_3 ip route add 172.16.20.0/24 via 10.0.5.3 mpls $key_1 ip route append 172.16.20.0/24 via 10.0.5.3 mpls $key_2 It seems to work fine. Now I want to use schedulers also in E3 and E4, but I wonder if I have to do all the matching from DSCP to EXP to TC, or if, after that matching on E1, the following routers can avoid doing that. The same question in about iptables and iproute, can I do only the MPLS XC and then enable qdiscs on E3 and E4? My goal would be avoiding reading the IP header information (DSCP in this case) in the core of the network, I would like to exploit the information extracted at the ingress LER. I hope I have been clear. Thank you for help, Luca |
From: James R. L. <jl...@mi...> - 2008-05-13 13:41:00
|
You can use the exp2tc instruction on the ILMs you create on E3 and E4. Of course you will need to map the 'TC' to a queue. On Tue, May 13, 2008 at 02:21:50PM +0200, luc...@li... wrote: > Hi, > I'm testing MPLS with linux schedulers in order to do some reservation and shaping in case of congestion on the default routes. > Now I'm working on a in-line testbed (just to get familiar with schedulers), belonging to the bigger one of MPLS Linux Lab examples by Irina Dumitrascu and Adrian Popa. > It is like this: > > A3----------E1----------E3----------E4----------A2 > (LER) (LSR) (LER) > > I've made the first tries with only one HTB scheduler on E1, sending 3 flows from A3 to A2 marked differently in the DSCP field. > My configuration is the following: > > > > key_1=`mpls nhlfe add key 0 instructions ds2exp 0xf 0x06 0x3 exp2tc 0x3 0x1 push gen 500 nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` > key_2=`mpls nhlfe add key 0 instructions ds2exp 0xf 0x07 0x6 exp2tc 0x6 0x2 push gen 500 nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` > key_3=`mpls nhlfe add key 0 instructions exp2tc 0x0 0x3 push gen 500 nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` > > > iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x06 -j mpls --nhlfe $key_1 > > iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x07 -j mpls --nhlfe $key_2 > > iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x00 -j mpls --nhlfe $key_3 > > > ip route add 172.16.20.0/24 via 10.0.5.3 mpls $key_1 > ip route append 172.16.20.0/24 via 10.0.5.3 mpls $key_2 > > It seems to work fine. > Now I want to use schedulers also in E3 and E4, but I wonder if I have to do all the matching from DSCP to EXP to TC, or if, after that matching on E1, the following routers can avoid doing that. > The same question in about iptables and iproute, can I do only the MPLS XC and then enable qdiscs on E3 and E4? > > My goal would be avoiding reading the IP header information (DSCP in this case) in the core of the network, I would like to exploit the information extracted at the ingress LER. > I hope I have been clear. > Thank you for help, > Luca > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu jl...@mi... |
From: Adrian P. <adr...@gm...> - 2008-05-13 14:00:24
|
Hello Luca, Indeed, as you say, E3 (and E4) can benefit from the clasification made by E1. The mpls command has some switches that allow you to map from EXP to TC - which is really what you need. So, E1 creates the EXP marking based on DSCP, E3 and E4 read the EXP and apply the policy. When you use mpls xc, you'll need to specify to map your EXP to TC and that should be it... Take note that in the examples, E4 doesn't have any htb traffic shaping because in the experiment, the congestion would happen on E3 - this doesn't mean you can't add it - we were just lazy :) Good luck! On Tue, May 13, 2008 at 3:21 PM, luc...@li... <luc...@li...> wrote: > Hi, > I'm testing MPLS with linux schedulers in order to do some reservation and > shaping in case of congestion on the default routes. > Now I'm working on a in-line testbed (just to get familiar with > schedulers), belonging to the bigger one of MPLS Linux Lab examples by Irina > Dumitrascu and Adrian Popa. > It is like this: > > A3----------E1----------E3----------E4----------A2 > (LER) (LSR) (LER) > > I've made the first tries with only one HTB scheduler on E1, sending 3 > flows from A3 to A2 marked differently in the DSCP field. > My configuration is the following: > > > > key_1=`mpls nhlfe add key 0 instructions ds2exp 0xf 0x06 0x3 exp2tc 0x3 > 0x1 push gen 500 nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` > key_2=`mpls nhlfe add key 0 instructions ds2exp 0xf 0x07 0x6 exp2tc 0x6 > 0x2 push gen 500 nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` > key_3=`mpls nhlfe add key 0 instructions exp2tc 0x0 0x3 push gen 500 > nexthop ath1 ipv4 10.0.5.3|grep key|cut -c 17-26` > > > iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x06 -j > mpls --nhlfe $key_1 > > iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x07 -j > mpls --nhlfe $key_2 > > iptables -t mangle -A FORWARD -s 172.16.30.0/24 -m dscp --dscp 0x00 -j > mpls --nhlfe $key_3 > > > ip route add 172.16.20.0/24 via 10.0.5.3 mpls $key_1 > ip route append 172.16.20.0/24 via 10.0.5.3 mpls $key_2 > > It seems to work fine. > Now I want to use schedulers also in E3 and E4, but I wonder if I have to > do all the matching from DSCP to EXP to TC, or if, after that matching on > E1, the following routers can avoid doing that. > The same question in about iptables and iproute, can I do only the MPLS XC > and then enable qdiscs on E3 and E4? > > My goal would be avoiding reading the IP header information (DSCP in this > case) in the core of the network, I would like to exploit the information > extracted at the ingress LER. > I hope I have been clear. > Thank you for help, > Luca > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general > |