mpls-linux-general Mailing List for MPLS for Linux (Page 155)
Status: Beta
Brought to you by:
jleu
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
(26) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(22) |
Feb
(19) |
Mar
(19) |
Apr
(45) |
May
(52) |
Jun
(101) |
Jul
(79) |
Aug
(24) |
Sep
(43) |
Oct
(54) |
Nov
(71) |
Dec
(53) |
2002 |
Jan
(111) |
Feb
(123) |
Mar
(67) |
Apr
(61) |
May
(75) |
Jun
(26) |
Jul
(36) |
Aug
(41) |
Sep
(79) |
Oct
(85) |
Nov
(58) |
Dec
(39) |
2003 |
Jan
(26) |
Feb
(61) |
Mar
(80) |
Apr
(56) |
May
(39) |
Jun
(44) |
Jul
(28) |
Aug
(25) |
Sep
(4) |
Oct
(20) |
Nov
(38) |
Dec
(9) |
2004 |
Jan
(14) |
Feb
(14) |
Mar
(68) |
Apr
(17) |
May
(45) |
Jun
(42) |
Jul
(41) |
Aug
(23) |
Sep
(46) |
Oct
(89) |
Nov
(55) |
Dec
(33) |
2005 |
Jan
(74) |
Feb
(39) |
Mar
(105) |
Apr
(96) |
May
(43) |
Jun
(48) |
Jul
(21) |
Aug
(22) |
Sep
(33) |
Oct
(28) |
Nov
(29) |
Dec
(81) |
2006 |
Jan
(37) |
Feb
(32) |
Mar
(147) |
Apr
(37) |
May
(33) |
Jun
(28) |
Jul
(15) |
Aug
(20) |
Sep
(15) |
Oct
(23) |
Nov
(30) |
Dec
(40) |
2007 |
Jan
(20) |
Feb
(24) |
Mar
(65) |
Apr
(69) |
May
(41) |
Jun
(53) |
Jul
(39) |
Aug
(76) |
Sep
(53) |
Oct
(43) |
Nov
(26) |
Dec
(24) |
2008 |
Jan
(19) |
Feb
(67) |
Mar
(91) |
Apr
(75) |
May
(47) |
Jun
(63) |
Jul
(68) |
Aug
(39) |
Sep
(44) |
Oct
(33) |
Nov
(62) |
Dec
(84) |
2009 |
Jan
(14) |
Feb
(39) |
Mar
(55) |
Apr
(63) |
May
(16) |
Jun
(9) |
Jul
(4) |
Aug
(6) |
Sep
(1) |
Oct
(2) |
Nov
(10) |
Dec
(5) |
2010 |
Jan
(3) |
Feb
(1) |
Mar
(5) |
Apr
(13) |
May
(4) |
Jun
(5) |
Jul
(2) |
Aug
(8) |
Sep
(6) |
Oct
(1) |
Nov
(2) |
Dec
(2) |
2011 |
Jan
(1) |
Feb
(21) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(6) |
Sep
|
Oct
|
Nov
(2) |
Dec
(6) |
2012 |
Jan
(5) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(5) |
Aug
(3) |
Sep
(6) |
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
From: Olivier D. <Oli...@rd...> - 2001-12-18 23:03:42
|
Hi Jim, James R. Leu wrote: > I see the light now..... > > Last night I dug around the kernel and I now see why you think that > netfilter is the best way for interacting with the ipv4 routing table. > I will look more at your work and see how I can make it less MPLS specific. > > Right now I think I am going to add a new netlink. POST_ROUTING_SLOW. > This will allow a netlink to modify the route cache entry. The result will > be that the netlink code for this will only be run for the first packet > in the "flow". The rest will hit the entry in the route cache and > will be redirected to the MPLS layer. > Ok, i think it's a good way setup the process of the first packet. It's that we do by hacking the rt_set_nexthop code. This function is call only for the first packet of a flow (ie. the first ping packet). Then, the entry are kept into the route cash a moment (so, stoping a ping and start some time after a second ping, doesn't call another time rt_set_nexthop because the route cash entry is still valid). What do you intend to do with this new POST_ROUTING_SLOW netlink ? - directly setup the route cash entry or - setup mpls_index (or nfmark) ? > Will this satisfy your hope of avoiding double lookups (for every packet > except the first)? Yes. Olivier -- FTR&D/DAC/CPN Technopole Anticipa | mailto:Oli...@fr... 2, Avenue Pierre Marzin | Phone: +(33) 2 96 05 28 80 F-22307 LANNION | Fax: +(33) 2 96 05 18 52 |
From: James R. L. <jl...@mi...> - 2001-12-18 23:02:00
|
Comments below .... On Tue, Dec 18, 2001 at 04:21:48PM +0100, Olivier Dugeon wrote: > Hi Jim, > > James R. Leu wrote: > > > I see the light now..... > > > > Last night I dug around the kernel and I now see why you think that > > netfilter is the best way for interacting with the ipv4 routing table. > > I will look more at your work and see how I can make it less MPLS specific. > > > > Right now I think I am going to add a new netlink. POST_ROUTING_SLOW. > > This will allow a netlink to modify the route cache entry. The result will > > be that the netlink code for this will only be run for the first packet > > in the "flow". The rest will hit the entry in the route cache and > > will be redirected to the MPLS layer. > > > > > Ok, i think it's a good way setup the process of the first packet. It's > that we do by hacking the rt_set_nexthop code. This function is call > only for the first packet of a flow (ie. the first ping packet). Then, > the entry are kept into the route cash a moment (so, stoping a ping and > start some time after a second ping, doesn't call another time > rt_set_nexthop because the route cash entry is still valid). > > What do you intend to do with this new POST_ROUTING_SLOW netlink ? -change the pmtu -use the some index on the skb to lookup the moi, attach it to the route cache entry -change rt->dst.output to be mpls_output This will require that everytime a moi is deleted, the route cache must be cleared. :-( What do you think of this? What should be done with skb that come through POST_ROUTING_SLOW but a moi could not be found? 1. I could drop it, then a route cache entry will not be created and next time a packet for this flow is seen it will be slow routed again giving another chance for a valid moi to be found. 2. I could let it pass and let it go via IP. Also subsequent packets for this flow will be fast routed, thus not given a chance to find valid moi. To get around this everytime a new moi is created the route cache could be cleared, thuis forcing packets to go through the slow path again. What do you suggest? Jim > - directly setup the route cash entry or > - setup mpls_index (or nfmark) ? > > > > Will this satisfy your hope of avoiding double lookups (for every packet > > except the first)? > > > Yes. > > Olivier > -- > FTR&D/DAC/CPN > Technopole Anticipa | mailto:Oli...@fr... > 2, Avenue Pierre Marzin | Phone: +(33) 2 96 05 28 80 > F-22307 LANNION | Fax: +(33) 2 96 05 18 52 -- James R. Leu jl...@mi... |
From: James R. L. <jl...@mi...> - 2001-12-18 14:54:47
|
Sorry for not getting back to you earlier. Did someone help you out with this? Mostly likely you don't have MPLS_LINUX defined in the makefile. Jim On Tue, Dec 11, 2001 at 05:52:05PM +0800, ncc49a wrote: > Hi everybody, > > I have downloaded the latest ldp implementation from the > CVS. I have followed the instructions exactly as specified > in the README in /linux-port for a direct connection > between 2 PCs. > > When done, a ldp session seems to have been established > between the 2 linux LSRs. Showing "database", "session" > and "route" all yield some results. > > However, when I tried to > ead /proc/mpls_in, /proc/mpls_out, /proc/mpls_fec files, > they were all blank, contrary to the README. > > That means no label bindings have been established > between the 2 LSRs right? > > From the mailing list, I have noticed Mr Kauder Thorsten > is doing something similiar at the moment. I wonder if you > faced such an issue. > > I guess I must have missed out something. I will > appreciate all help/advice provided. > > Thanks a lot! > > Regards, > > Paul > > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu jl...@mi... |
From: James R. L. <jl...@mi...> - 2001-12-18 14:51:29
|
I see the light now..... Last night I dug around the kernel and I now see why you think that netfilter is the best way for interacting with the ipv4 routing table. I will look more at your work and see how I can make it less MPLS specific. Right now I think I am going to add a new netlink. POST_ROUTING_SLOW. This will allow a netlink to modify the route cache entry. The result will be that the netlink code for this will only be run for the first packet in the "flow". The rest will hit the entry in the route cache and will be redirected to the MPLS layer. Will this satisfy your hope of avoiding double lookups (for every packet except the first)? Jim On Tue, Dec 11, 2001 at 01:52:39PM +0100, Olivier Dugeon wrote: > hi Jim, > > Can you describe a little more the MPLS_OP_NF_FWD action ? It doesn't work, because I cannot bind a LSP to a route in the mangle table. Jim > If i understand well, the sutff is : > > - mark packet with iptable > - use MPLS_OP_NF_FWD to retrieve the MOI info (and so the outgoing > label) from the nfmark value > - possibly use nfmark as filter criteria for TC as usual > > It look like good for me because it made a very little change in the > kernel and haven't to maintain an mpls_index change in case of nfmark > change. > > Just a point of clarification about the use of nfmark instead of > mpls_index for the reason given previously (incomptability with nfmark > route only stuff) Have you a different way to use this action and so let > the normal nfmark behaviour work as usual ? I suppose mplsadm need to > be modified to set up this action with the right nfmark value ? If so, i > suppose you can leave both normal and mpls nfmark. The difference come > with a different value for nfmark (only value setup with mplsadm result > in a mpls processing) > > Regards, > > Olivier > > James R. Leu wrote: > > > Hello, > > > > I have (re)implemented my version of TC/DS enhanced mpls-linux. I would > > like to describe what I have created so I can get feed back. Also > > I would like to get examples from people of how to use TC and iptables > > to actually excercise this new code and to show me what this implementation > > cannot do. > > > > First this to keep in mind is that 'outgoing info' nolonger can be interpreted > > as 'outgoing label'. A particular 'outgoing info' can fwd on to another > > 'outgoing info' which may do a 'push'. 'incoming labels', aux_proto, and > > mpls tunnels all point to 'outgoing info' (in addition 'outgoing info' can > > point to other 'outgoing info'). I will refer to 'outgoing info' as > > 'MOI' (in the code it stands for the mpls_outgoing_info structure). > > > > Incoming labels and MOI's have an array of 'instructions' associated > > with them. Each instruction has a 'data block' associated with it. > > The original set of instructions, have changed very little: > > > > MPLS_OP_POP -> IN: pop off top label (no data) > > MPLS_OP_PEEK -> IN: make the top label the active 'incoming label' (no data) > > MPLS_OP_PUSH -> OUT: push a label on to the top of the label stack > > (label to push) > > MPLS_OP_DLV -> IN: deliver the packet to a specify protocol handler > > (protocol id to send the packet to ie IPv4 IPv6) > > MPLS_OP_FWD -> IN: transfer control to mpls_output() (pointer to the MOI) > > OUT: start processing the instructions wit the new MOI > > (pointer to the new MOI) > > MPLS_OP_SET -> IN: set the incoing interface > > OUT: set the dst_entry on the skb [last step before TXing a > > MPLS packet] (pointer to the dst_entry) > > > > These are the new instructions: > > > > *nfmark comes from skb > > #dsmark comes from IP header > > *tc_index comes from the skb > > *EXP comes from the active incoming label > > > > MPLS_OP_NF_FWD -> IN/OUT: index into the datablock by using the (nfmark & mask) > > start processing the MOI that was found. (array of MOIs) > > MPLS_OP_DS_FWD -> IN: index into the datablock by using the (dsmark & mask) > > start processing the MOI that was found. (array of MOIs) > > MPLS_OP_TC_FWD -> OUT: index into the datablock by using the (tc_index & mask) > > start processing the MOI that was found. (array of MOIs) > > MPLS_OP_EXP_FWD -> IN: index into the datablock by using the (EXP) > > start processing the MOI that was found. (array of MOIs) > > MPLS_OP_SET_TC -> IN/OUT: set the tc_index (tc_index to use) > > MPLS_OP_SET_DS -> IN/OUT: set the dsmark (DSCP to use) > > MPLS_OP_SET_EXP -> IN/OUT: set EXP on the top label (EXP to use) > > MPLS_OP_EXP2TC -> IN: index into the data block by using the (EXP) and set the > > tc_index to the value found > > MPLS_OP_EXP2DS -> IN: index into the data block by using the (EXP) and set the > > dsmark to the value found > > > > > > > > So here are some examples: > > > > Egress LER: > > > > On input of label 100 EXP 1 gets DSCP 0x4, EXP 4 gets DSCP 0x7 > > > > MII(100) -> PEEK POP EXP2DS(1->0x4,4->0x7) DLV(IPv4) > > > > Ingress LER (DSCP): > > > > Packets going to 11.0.0.0/16 goes out with label 100, DSCP 0x4 get EXP 1, > > DSCP 0x7 gets EXP 4 > > > > IPROUTE(11.0.0.0/16) -> MOI(1000) > > MOI(1000) DS_FWD(0x4->MOI(500), 0x7->MOI(2000)) > > MOI(500) SET_EXP (1) PUSH(100) SET(next hop info) > > MOI(2000) SET_EXP (4) PUSH(100) SET(next hop info) > > > > IP routing tranfer control to mpls_output and starts processing MOI(1000). > > MOI(1000) looks at the DSCP and starts processing either MOI(500) or > > MOI(2000). MOI(500) and MOI(2000) set the EXP, puch the label, > > set the dst_entry and then send the packet) > > > > (you could implement L-LSPs in a similar way, push differnt label in MOI(500) > > and MOI(2000) and do not set the EXP value) > > > > Alternative: > > > > IPROUTE(11.0.0.0/16) -> MPLS_TUNNEL(mpls0) > > mpls0 -> MOI(1000) > > MOI(500) SET_EXP (1) PUSH(100) SET(next hop info) > > MOI(2000) SET_EXP (4) PUSH(100) SET(next hop info) > > > > IP routing tranfer send the packet out interface mpls0. Interface mpls0 > > transfers control to mpls_output and starts processing MOI(1000). > > MOI(1000) looks at the DSCP and starts processing either MOI(500) or > > MOI(2000). MOI(500) and MOI(2000) set the EXP, puch the label, > > set the dst_entry and then send the packet) > > > > Ingress LER NFMARK and TCINDEX, work simlarly. > > > > Transit: > > > > INCOMING_LABEL(100) PEEK POP EXP2TC(1->0xF,4->0xE) -> MOI(10000) > > MOI(10000) PUSH(100) SET(next hop info) > > > > Incoming label 100 looks at the EXP bits and sets tc_index to 0xF when > > EXP is 1 and to 0xE when EXP is 4. MOI(10000) is responsible for > > trasmitting the label. It pushed on label 100 (and the same EXP bits) > > and send it on it way. As it leaved via the physical interface a packet > > scheduler can look at the tc_index and schedule it appropriately. > > > > If you want to translate the EXP then you could use an EXP forward > > to differnt MOIs that push on the same label, but set differnt EXP bits. > > > > Additional intructions? > > > > MPLS_OP_TC2EXP -> coule be use in a MOI to translate the tc_index set on > > input to differnt EXP values. This would avoid having > > to do a EXP FWD just to set differnt EXP values. > > > > MPLS_OP_DS2EXP -> same as above, but would look at DSCP in the IP header > > and could only be execute on packet that came directly > > from the IP layer. It would avoid having to have > > seperate MOIs to implement E-LSPs. > > > > Comments, questions, political statments? > > > > Jim > > > > > -- > FTR&D/DAC/CPN > Technopole Anticipa | mailto:Oli...@fr... > 2, Avenue Pierre Marzin | Phone: +(33) 2 96 05 28 80 > F-22307 LANNION | Fax: +(33) 2 96 05 18 52 > > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu jl...@mi... |
From: James R. L. <jl...@mi...> - 2001-12-18 14:44:10
|
On Wed, Dec 12, 2001 at 05:50:27PM +0530, Vivek Agarwal wrote: Hi , <p>I am new to MPLS and am planning to use the 2684bridged encapsulation to create interfaces for running mpls over atm. <br>The example suggests using `atmarp` from the clip package to create the interface, but is it possible to use the atm interface created by 2684 bridgedPVC patch for atm for MPLS. <br>Reason being with `atmarp` we can only create one IP interface (i.e. "atm<no.>") where the "no." depends on itf number of the NIC. <br>Please correct me if i am wrong. <p>Thanks in advance I haven't tried yet. Can you give me an example of how you create an RFC 2684 vc on linux. My gut feeling is that if it doesn't work, it shouldn't take much to make it work. Jim PS as an aside, I feel that the linux-atm design doesn't work well for "router" like functionality. The linux-atm group devloped their software for application devleopment and workstations. It will need to be re-written for it to fit correctly into a "router" like environment. -- James R. Leu jl...@mi... |
From: James R. L. <jl...@mi...> - 2001-12-18 14:27:12
|
On Tue, Dec 18, 2001 at 12:39:42AM -0800, Amit Kulkarni wrote: > Hi all, > > I am using mpls functions in my code .How ever when I > try to push a label on the packet, the next hop does > not get it. Strangely in the first machine packet > transmitted count is incremented and some printks show > the packet goes till the driver interface.On the other > machine however there is no action in the > net_rx_action function in net/core/dev.c Are you sure you specified a valid nexthop? > Did anybody face similar such problem before ? No. > can somebody give me pointers ?? > I am attaching the skb_dump of the packet before and > after the pushing the label. > I will be happy to provide you any other information > you need. Exactly what calls did you make to setup this LSP? > also I was wondering if theres any particular reason > why you are not doing > skb->nh.ar_pro = __constant_htons_(ETH_P_MPLS_UC) or Because just before dev_queue_xmit() the L2 header in the skb is overwritten with the L2 header from the neighbor table. The neighbor table creates a neighbor entry by looking at skb->protocol ... Jim > similar such thing > > thanks in advance > Amit > > __________________________________________________ > Do You Yahoo!? > Check out Yahoo! Shopping and Yahoo! Auctions for all of > your unique holiday gifts! Buy at http://shopping.yahoo.com > or bid at http://auctions.yahoo.com Content-Description: Temp.out > skb_dump: from eth2 with len 124 (324) headroom=18 tailroom=18 > 000000000000000000000000000000000000{*000102494d30000102494eae0800#|4540006e091c00003f0455d90a05041e0a03043200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac200200010000091c01a552ebfe5aad14fe} > mpls_opcode_push: using tailroom > mpls_opcode_push: done using tailroom > mpls_opcode_push: dump after tail room new packet > skb_dump: from eth2 with len 128 (324) headroom=18 tailroom=14 > 000000000000000000000000000000000000{*00010249000102494d3000010249#|4eae08004540006e091c00003f0455d90a05041e0a03043200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac200200010000091c01a552ebfe5aad1400} -- James R. Leu jl...@mi... |
From: Amit K. <ami...@ya...> - 2001-12-18 08:40:25
|
Hi all, I am using mpls functions in my code .How ever when I try to push a label on the packet, the next hop does not get it. Strangely in the first machine packet transmitted count is incremented and some printks show the packet goes till the driver interface.On the other machine however there is no action in the net_rx_action function in net/core/dev.c Did anybody face similar such problem before ? can somebody give me pointers ?? I am attaching the skb_dump of the packet before and after the pushing the label. I will be happy to provide you any other information you need. also I was wondering if theres any particular reason why you are not doing skb->nh.ar_pro = __constant_htons_(ETH_P_MPLS_UC) or similar such thing thanks in advance Amit __________________________________________________ Do You Yahoo!? Check out Yahoo! Shopping and Yahoo! Auctions for all of your unique holiday gifts! Buy at http://shopping.yahoo.com or bid at http://auctions.yahoo.com |
From: Amit K. <ami...@ya...> - 2001-12-18 08:18:59
|
if u add a -I /usr/src/linux/include to line CFLAGS in the make file you should be able to compile the mplsadm -Amit FROM: aileen hanDATE: 12/12/2001 01:01:33SUBJECT: .[mpls-linux-general] Some problems in kernel 2.4.10 This is a multi-part message in MIME format. Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable I patched the kernel with mpls-linux-1.0, and configured the kernel. When I reboot with the new complied kernel, I can't find eth0 using = ifconfig. I can't start up my X windows.:-( When I was compling the mplsadm, it occure error. it said "linux/mpls.h: = no directory or files". I am surprised. The file exist indeed!! can anyone answer my question? Thank u very much~~~ __________________________________________________ Do You Yahoo!? Check out Yahoo! Shopping and Yahoo! Auctions for all of your unique holiday gifts! Buy at http://shopping.yahoo.com or bid at http://auctions.yahoo.com |
From: Paul N. <pau...@ya...> - 2001-12-14 16:21:20
|
Just discovered that today too :) Thanks a lot anyway! ----- Original Message ----- From: "Esterlizi, CarlosMartin (CarlosMartin)" <ces...@lu...> To: "'Paul Ng'" <pau...@ya...> Cc: <mpl...@li...> Sent: Friday, December 14, 2001 9:05 PM Subject: RE: [mpls-linux-general] Questions regarding ldp_linux > Paul > > I think I had the same problem. The ldp protocol seems working ok but, you > don't get the labels and fec in the kernel. > Did you download the LDP from CVS ?. If so , if you edit the Makefile you > will find at the top this lines: > CFLAGS = -g -I. -Wall -D__LDP_LINUX__ -Werror > #-DMPLS_LINUX > you have to uncomment the definition of MPLS_LINUX. > > CFLAGS = -g -I. -Wall -D__LDP_LINUX__ -Werror -DMPLS_LINUX > > then complile again. > > I hope this will help you. > > .. > Carlos > > > > > ---------- > > From: Paul Ng[SMTP:pau...@ya...] > > Sent: Jueves, 13 de Diciembre de 2001 04:25 a.m. > > To: jl...@us... > > Cc: mpl...@li... > > Subject: [mpls-linux-general] Questions regarding ldp_linux > > > > Dear Mr Leu, > > > > I have encountered a problem when using linux-port for LDP. I have > > posted this question on the list a while back, but there seem to be no > > reply. Perharps you can help me with it? > > > > I have 2 PCs connected via Ethernet. I performed the steps as stated > > in the README. Precise details of the order of my steps are in my earlier > > post. > > > > When done, the 2 LSRs seem to be exchanging labels. Using Ethereal to > > sniff on eth0, I can detect "Hello", "Initialization", "Address", "Label > > Mapping" msgs being exchanged. However, when I do a "cat > > /proc/net/mpls_*", the files seem empty. I am unsure what the problem is.. > > really, as I followed the README to the dot. > > > > Maybe you can shed some light to this? I will really appreciate it! > > > > Also, I haven't tried it yet... but will ldp_linux work to exchange > > labels between a Linux-LSR and an ATM-LSR, using conventional multicast > > peer discovery? > > > > Thanks a lot! Will be looking forward to your reply. > > > > Regards, > > > > Paul > > > |
From: Esterlizi, C. (CarlosMartin) <ces...@lu...> - 2001-12-14 13:05:35
|
Paul I think I had the same problem. The ldp protocol seems working ok but, you don't get the labels and fec in the kernel. Did you download the LDP from CVS ?. If so , if you edit the Makefile you will find at the top this lines: CFLAGS = -g -I. -Wall -D__LDP_LINUX__ -Werror #-DMPLS_LINUX you have to uncomment the definition of MPLS_LINUX. CFLAGS = -g -I. -Wall -D__LDP_LINUX__ -Werror -DMPLS_LINUX then complile again. I hope this will help you. .. Carlos > ---------- > From: Paul Ng[SMTP:pau...@ya...] > Sent: Jueves, 13 de Diciembre de 2001 04:25 a.m. > To: jl...@us... > Cc: mpl...@li... > Subject: [mpls-linux-general] Questions regarding ldp_linux > > Dear Mr Leu, > > I have encountered a problem when using linux-port for LDP. I have > posted this question on the list a while back, but there seem to be no > reply. Perharps you can help me with it? > > I have 2 PCs connected via Ethernet. I performed the steps as stated > in the README. Precise details of the order of my steps are in my earlier > post. > > When done, the 2 LSRs seem to be exchanging labels. Using Ethereal to > sniff on eth0, I can detect "Hello", "Initialization", "Address", "Label > Mapping" msgs being exchanged. However, when I do a "cat > /proc/net/mpls_*", the files seem empty. I am unsure what the problem is.. > really, as I followed the README to the dot. > > Maybe you can shed some light to this? I will really appreciate it! > > Also, I haven't tried it yet... but will ldp_linux work to exchange > labels between a Linux-LSR and an ATM-LSR, using conventional multicast > peer discovery? > > Thanks a lot! Will be looking forward to your reply. > > Regards, > > Paul > |
From: Paul N. <pau...@ya...> - 2001-12-13 19:27:05
|
Dear Mr Leu, I have encountered a problem when using linux-port for LDP. I have = posted this question on the list a while back, but there seem to be no = reply. Perharps you can help me with it? I have 2 PCs connected via Ethernet. I performed the steps as stated = in the README. Precise details of the order of my steps are in my = earlier post. When done, the 2 LSRs seem to be exchanging labels. Using Ethereal = to sniff on eth0, I can detect "Hello", "Initialization", "Address", = "Label Mapping" msgs being exchanged. However, when I do a "cat = /proc/net/mpls_*", the files seem empty. I am unsure what the problem = is.. really, as I followed the README to the dot.=20 Maybe you can shed some light to this? I will really appreciate it! Also, I haven't tried it yet... but will ldp_linux work to exchange = labels between a Linux-LSR and an ATM-LSR, using conventional multicast = peer discovery? Thanks a lot! Will be looking forward to your reply. Regards, Paul |
From: James R. L. <jl...@mi...> - 2001-12-13 15:58:51
|
On Thu, Dec 13, 2001 at 11:15:24AM +0100, Kauder Thorsten wrote: > Hi Jim, > I'm testing the LDP now against a Cisco Router. > No Session is established, sorry. > I turned on full tracing and sniffed using ethereal. > The Cisco doesn't send a configuration sequence number (TLV) > LDP_Linux therefor doesn't accept the Hello-packets. > > If I understand RFC 3036 right the CSN is optional !!! You are correct it is optional. I'm not sure why it is failing. To make sure the failure if due to no CSN, add some debuging to: ldp_hello.c: ldp_hello_process() If you look throug hthe code you will see where it is checking the csn. Add a printf or somethgin there and see what is happening. (I'd do it myself, but I don;t have time, nor do I have an extra cisco to play with right now) Jim > Here's part of the ldp output: > > OUT: ## args Hello msg does not have Csn TLV > OUT: ## args Mesg size: 24 (34) > EXIT: ## args ## > ENTER: ## args ## > ENTER: ## args ## > ENTER: ## args ## > OUT: ## args Hello Recv: entity(2) > ENTER: ## args ## > EXIT: ## args ## > EXIT: ## args ## > ENTER: ## args ## > EXIT: ## args ## > EXIT: ## args ## > EXIT: ## args ## > EXIT: ## args ## > ENTER: ## args ## > Incoming: want(10) size(0) current_size(0) > UDP data size = 0 > EXIT: ## args ## > OUT: ## args ldp_event: FAILURE executing a CLOSE > ENTER: ## args ## > EXIT: ## args ## > EXIT: ## args ## > > Is that a bug or what ? > > greetings > > Thorsten > > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu jl...@mi... |
From: Kauder T. <Tho...@ic...> - 2001-12-13 11:00:49
|
Hi Jim, I'm testing the LDP now against a Cisco Router. No Session is established, sorry. I turned on full tracing and sniffed using ethereal. The Cisco doesn't send a configuration sequence number (TLV) LDP_Linux therefor doesn't accept the Hello-packets. If I understand RFC 3036 right the CSN is optional !!! Here's part of the ldp output: OUT: ## args Hello msg does not have Csn TLV OUT: ## args Mesg size: 24 (34) EXIT: ## args ## ENTER: ## args ## ENTER: ## args ## ENTER: ## args ## OUT: ## args Hello Recv: entity(2) ENTER: ## args ## EXIT: ## args ## EXIT: ## args ## ENTER: ## args ## EXIT: ## args ## EXIT: ## args ## EXIT: ## args ## EXIT: ## args ## ENTER: ## args ## Incoming: want(10) size(0) current_size(0) UDP data size = 0 EXIT: ## args ## OUT: ## args ldp_event: FAILURE executing a CLOSE ENTER: ## args ## EXIT: ## args ## EXIT: ## args ## Is that a bug or what ? greetings Thorsten |
From: Sanchez, F. (Fernando) <fsa...@lu...> - 2001-12-13 10:04:36
|
Hi Vivek, what do you mean with using 2684 (former 1483) for encapsulating MPLS into ATM? wouldn't it make more sense to use either ATM as the MPLS layer 2 (thus doing Cell mode MPLS operation with ATM label switching), what I think would be outside the scope of the list as there is no linux driver for mpls on ATM NICs; or running frame mode MPLS and shim header in the Ethernet NIC with no ATM at all ... I just can't see the sense in encapsulating IP/MPLS/PPP/ATM all over again... If the scenario is that the box doing the MPLS processing is in a LAN that is going to the world outside through an ATM switch/router, wouldn't it make more sense that the ATM box is the LER, and the box with the ethernet NIC do just IP/Ethernet ? please correct me if I am wrong thanks, best regards Fernando ======================================================================= aga...@wi... wrote : Hi , I am new to MPLS and am planning to use the 2684bridged encapsulation to create interfaces for running mpls over atm. The example suggests using `atmarp` from the clip package to create the interface, but is it possible to use the atm interface created by 2684 bridgedPVC patch for atm for MPLS. Reason being with `atmarp` we can only create one IP interface (i.e. "atm<no.>") where the "no." depends on itf number of the NIC. Please correct me if i am wrong. Thanks in advance. Regards Vivek |
From: Kauder T. <Tho...@ic...> - 2001-12-13 09:20:31
|
Hey Mr Paul, Thorsten is my first name but never mind :))) I tried to copy your setup but my system does't support the ip-commands you used. Didn't work here either. Using your local loopback device doesn't seem to wise . Try using a dummy. If your kernel supports loadable modules and dummy network device as such a module try it with my setup. I too am using only two computers with only one ethernet device each. the dummy device is only virtual. dummy0 --------- eth0 eth0 -------- dummy0 <-----| LER 1 |------------------| LER B |-------> --------- -------- First I set up the Devices. On Ler 1: ifconfig eth0 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255 up ifconfig dummy0 1.2.3.4 On Ler 2: ifconfig eth0 10.0.0.2 netmask 255.255.255.0 broadcast 10.0.0.255 up ifconfig dummy0 2.3.4.5 Second I add routes to virtual networks. On Ler 1: route add -net 78.1.1.0/24 gw 1.2.3.4 route add -net 78.1.2.0/24 gw 1.2.3.4 route add -net 79.1.1.0/24 gw 10.0.0.2 route add -net 79.1.2.0/24 gw 10.0.0.2 On Ler 2: route add -net 79.1.1.0/24 gw 2.3.4.5 route add -net 79.1.2.0/24 gw 2.3.4.5 route add -net 78.1.1.0/24 gw 10.0.0.1 route add -net 78.1.2.0/24 gw 10.0.0.1 Then I make shure the right labelspaces are associated: on Ler 1 and Ler 2: cd {your mpls dir}/utils ./mplsadm -L eth0:0 you can check if it worked in /proc/net/mpls_labelspace Then start Ldp on both LERs: On LER 1: ./ldp_linux add global 10.0.0.1 set trace 0xFFFFFFFF add interface eth0 On LER 2: ./ldp_linux add global 10.0.0.2 set trace 0xFFFFFFFF add interface eth0 Now it should work !!!! My /proc/net/mpls_* files after that are listed below: mpls_in: 40004000 gen 16 0 POP DLV 40004400 gen 17 0 POP DLV 40004800 gen 18 0 POP DLV 40004c00 gen 19 0 POP DLV 40005000 gen 20 0 POP DLV 40005400 gen 21 0 POP DLV mpls_fec: 40004c02 78.1.1.0/24 40005002 78.1.2.0/24 mpls_labelspace: lo 0 eth0 0 mpls_out: 40004c02 PUSH(gen 19) SET(eth0) 40005002 PUSH(gen 20) SET(eth0) mpls_tunnel is of cource empty !! if that doesn't help you I may ask if you can establish LSPs manually try the README.example from the utils dir. Hope it works now Thorsten |
From: James R. L. <jl...@mi...> - 2001-12-13 03:14:42
|
----- Forwarded message from nc...@si... ----- From: nc...@si... To: mpl...@li... Subject: RE:Some problems in kernel 2.4.10 Date: Thu, 13 Dec 2001 02:30:50 +0000 X-Mailer: CSMTPConnection v1.3 Reply-To: nc...@si... Errors-To: mpl...@li... X-BeenThere: mpl...@li... X-Mailman-Version: 2.0.5 Precedence: bulk List-Help: <mailto:mpl...@li...?subje= ct=3Dhelp> List-Post: <mailto:mpl...@li...> List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/mpls-linux-= general>, <mailto:mpl...@li...?subject=3Dsubsc= ribe> List-Id: Disscussion related to MPLS for Linux <mpls-linux-general.lists.= sourceforge.net> List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/mpls-linu= x-general>, <mailto:mpl...@li...?subject=3Dunsub= scribe> List-Archive: <http://www.geocrawler.com/redir-sf.php3?list=3Dmpls-linux-= general> I think the patch only works for kernel 2.4.13. Try that, it will work. >>Date: Wed, 12 Dec 2001 12:13:12 -0800 >>From: mpl...@li... >>To: mpl...@li... >>CC: =20 >>Subject: mpls-linux-general digest, Vol 1 #199 - 3 msgs >> Send mpls-linux-general mailing list submissions to mpl...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/mpls-linux-general or, via email, send a message with subject or body 'help' to mpl...@li... You can reach the person managing the list at mpl...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of mpls-linux-general digest..." Today's Topics: 1. Some problems in kernel 2.4.10 (aileen han) 2. MPLS over ATM (2684bridgedPVC) (Vivek Agarwal) 3. Re: LDP (linux-port) (Paul Ng) --__--__-- Message: 1 From: "aileen han" <ha...@bl...> To: <mpl...@li...> Date: Wed, 12 Dec 2001 15:27:20 -0800 Subject: [mpls-linux-general] Some problems in kernel 2.4.10 This is a multi-part message in MIME format. ------=3D_NextPart_000_0005_01C18321.7D8E1EF0 Content-Type: text/plain; charset=3D"gb2312" Content-Transfer-Encoding: quoted-printable I patched the kernel with mpls-linux-1.0, and configured the kernel. When I reboot with the new complied kernel, I can't find eth0 using =3D ifconfig. I can't start up my X windows.:-( When I was compling the mplsadm, it occure error. it said "linux/mpls.h: = =3D no directory or files". I am surprised. The file exist indeed!! can anyone answer my question? Thank u very much~~~ ------=3D_NextPart_000_0005_01C18321.7D8E1EF0 Content-Type: text/html; charset=3D"gb2312" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D3D"text/html; charset=3D3Dgb2312" http-equiv=3D3DContent-= Type> <META content=3D3D"MSHTML 5.00.3103.1000" name=3D3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D3D#ffffff> <DIV><FONT face=3D3DArial size=3D3D2>I patched the kernel with =3D mpls-linux-1.0, and=3D20 configured the kernel.</FONT></DIV> <DIV><FONT face=3D3DArial size=3D3D2>When I reboot with the new complied = =3D kernel, I can't=3D20 find eth0 using ifconfig.</FONT></DIV> <DIV><FONT face=3D3DArial size=3D3D2>I can't start up my X =3D windows.:-(</FONT></DIV> <DIV>=A0</DIV> <DIV><FONT face=3D3DArial size=3D3D2>When I was compling the mplsadm, it = =3D occure error.=3D20 it said "linux/mpls.h: no directory or files".</FONT></DIV> <DIV><FONT face=3D3DArial size=3D3D2>I=A0am surprised. The file exist=3D2= 0 indeed!!</FONT></DIV> <DIV>=A0</DIV> <DIV><FONT face=3D3DArial size=3D3D2>can=A0anyone answer my =3D question?</FONT></DIV> <DIV><FONT face=3D3DArial size=3D3D2>Thank u very much~~~</FONT></DIV> <DIV>=A0</DIV></BODY></HTML> ------=3D_NextPart_000_0005_01C18321.7D8E1EF0-- --__--__-- Message: 2 Date: Wed, 12 Dec 2001 17:50:27 +0530 From: Vivek Agarwal <aga...@wi...> Reply-To: aga...@wi... Organization: Wipro Technologies To: mpl...@li... Subject: [mpls-linux-general] MPLS over ATM (2684bridgedPVC) ------=3D_NextPartTM-000-0478f118-eef3-11d5-a216-0000e22173f5 Content-Type: multipart/alternative; boundary=3D"------------130EBE80AE1CDAF148E90EB9" --------------130EBE80AE1CDAF148E90EB9 Content-Type: text/plain; charset=3Diso-8859-15 Content-Transfer-Encoding: base64 Hi , I am new to MPLS and am planning to use the 2684bridged encapsulation to create interfaces for running mpls over atm. The example suggests using `atmarp` from the clip package to create the interface, but is it possible to use the atm interface created by 2684 bridgedPVC patch for atm for MPLS. Reason being with `atmarp` we can only create one IP interface (i.e. "atm<no.>") where the "no." depends on itf number of the NIC. Please correct me if i am wrong. Thanks in advance. Regards Vivek -- Vivek Agarwal, ,,, Wipro Technologies. (0^0) _____________________________________________________________oOO__( )__OO= o____ We cannot do everything at once, but we can do something at once. --------------130EBE80AE1CDAF148E90EB9 Content-Type: text/html; charset=3Diso-8859-15 Content-Transfer-Encoding: 7bit <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <body bgcolor=3D"#FFFFFF"> Hi , <p>I am new to MPLS and am planning to use the 2684bridged encapsulation to create interfaces for running mpls over atm. <br>The example suggests using `atmarp` from the clip package to create the interface, but is it possible to use the atm interface created by 268= 4 bridgedPVC patch for atm for MPLS. <br>Reason being with `atmarp` we can only create one IP interface (i.e. "atm<no.>") where the "no." depends on itf number of the NIC. <br>Please correct me if i am wrong. <p>Thanks in advance. <br>Regards <br>Vivek <br>=A0 <br>=A0 <pre>--=A0 =A0Vivek Agarwal,=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 ,,, =A0Wipro Technologies.=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0 (0^0) _____________________________________________________________oOO__( )__OO= o____ We cannot do everything at once, but we can do something at once.</pre> =A0 </body> </html> --------------130EBE80AE1CDAF148E90EB9-- ------=3D_NextPartTM-000-0478f118-eef3-11d5-a216-0000e22173f5 Content-Type: text/plain; name=3D"InterScan_Disclaimer.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=3D"InterScan_Disclaimer.txt" -------------------------------------------------------------------------= ------------------------------------------------ Information transmitted by this E-MAIL is proprietary to Wipro and/or its= Customers and is intended for use only by the individual or entity to which it is addressed, and may contain information that is privileged, confidential o= r exempt from disclosure under applicable law. If you are not the intended recipient or it appears that this mail has been forwarded to you without proper authority, you are notified that any use or dissemination of this information in any manner is strictly prohibited. In such cases, please notify us immediately at mailto:mai...@wi... and delete this mail from your records. -------------------------------------------------------------------------= --------------------------------------------- ------=3D_NextPartTM-000-0478f118-eef3-11d5-a216-0000e22173f5-- --__--__-- Message: 3 From: "Paul Ng" <pau...@ya...> To: <mpl...@li...> Date: Wed, 12 Dec 2001 12:34:20 +0800 Subject: [mpls-linux-general] Re: LDP (linux-port) Hi, Mr Thorsten, I appreciate the help provided. However, I do not quite understand your way of configuring the 2 PCs. This is what I have done.. maybe if u have the time, you can advice me further on the things I have missed out. I have just 2 Linux PCs joined together by a Ethernet cable. Both PCs have the most recent MPLS patch applied to kernel 2.4.13. To configure them, I performed these precise st= eps in the exact order as typed. a) LSR A: 1) ifconfig eth0 192.168.0.1 2) ifconfig lo 10.0.0.1 3) ip addr add 10.0.0.1/32 dev lo 4) ip route add 10.0.0.2/32 via 192.168.0.2 b) LSR B: 1) ifconfig eth0 192.168.0.2 2) ifconfig lo 10.0.0.2 3) ip addr add 10.0.0.2/32 dev lo 4) ip route add 10.0.0.1/32 via 192.168.0.1 c) LSR A: 1) Start ldp_linux. 2) add global 10.0.0.1 3) add interface eth0 d) LSR B: 1) Start ldp_linux. 2) add global 10.0.0.2 3) add interface eth0 On both PCs, I sniffed the line using Ethereal. I encountered the following problem. A session seemed to be establish= ed as show "database" and show "session" do produce some results. But when I tried to read the /proc/net/mpls_* files, they were all blank. I assume t= hat means that no labels have been binded yet? I don't really know why. I will greatly appreciate any advice from you or anyone else who can help. Have been stuck at this for some time. BTW, has anyone come up with a more complete/reliable implementation = of LDP, that may also support ATM LSRs? Thanks a lot in advance. Regards, Paul --__--__-- _______________________________________________ mpls-linux-general mailing list mpl...@li... https://lists.sourceforge.net/lists/listinfo/mpls-linux-general End of mpls-linux-general Digest _________________________________________________ The simple way to read all your emails at ThatWeb http://www.thatweb.com ----- End forwarded message ----- --=20 James R. Leu jl...@mi... |
From: Paul N. <pau...@ya...> - 2001-12-12 16:38:13
|
Hi, Mr Thorsten, I appreciate the help provided. However, I do not quite understand your way of configuring the 2 PCs. This is what I have done.. maybe if u have the time, you can advice me further on the things I have missed out. I have just 2 Linux PCs joined together by a Ethernet cable. Both PCs have the most recent MPLS patch applied to kernel 2.4.13. To configure them, I performed these precise steps in the exact order as typed. a) LSR A: 1) ifconfig eth0 192.168.0.1 2) ifconfig lo 10.0.0.1 3) ip addr add 10.0.0.1/32 dev lo 4) ip route add 10.0.0.2/32 via 192.168.0.2 b) LSR B: 1) ifconfig eth0 192.168.0.2 2) ifconfig lo 10.0.0.2 3) ip addr add 10.0.0.2/32 dev lo 4) ip route add 10.0.0.1/32 via 192.168.0.1 c) LSR A: 1) Start ldp_linux. 2) add global 10.0.0.1 3) add interface eth0 d) LSR B: 1) Start ldp_linux. 2) add global 10.0.0.2 3) add interface eth0 On both PCs, I sniffed the line using Ethereal. I encountered the following problem. A session seemed to be established as show "database" and show "session" do produce some results. But when I tried to read the /proc/net/mpls_* files, they were all blank. I assume that means that no labels have been binded yet? I don't really know why. I will greatly appreciate any advice from you or anyone else who can help. Have been stuck at this for some time. BTW, has anyone come up with a more complete/reliable implementation of LDP, that may also support ATM LSRs? Thanks a lot in advance. Regards, Paul |
From: Vivek A. <aga...@wi...> - 2001-12-12 12:14:24
|
------------------------------------------------------------------------------------------------------------------------- Information transmitted by this E-MAIL is proprietary to Wipro and/or its Customers and is intended for use only by the individual or entity to which it is addressed, and may contain information that is privileged, confidential or exempt from disclosure under applicable law. If you are not the intended recipient or it appears that this mail has been forwarded to you without proper authority, you are notified that any use or dissemination of this information in any manner is strictly prohibited. In such cases, please notify us immediately at mailto:mai...@wi... and delete this mail from your records. ---------------------------------------------------------------------------------------------------------------------- |
From: aileen h. <ha...@bl...> - 2001-12-12 07:27:10
|
I patched the kernel with mpls-linux-1.0, and configured the kernel. When I reboot with the new complied kernel, I can't find eth0 using = ifconfig. I can't start up my X windows.:-( When I was compling the mplsadm, it occure error. it said "linux/mpls.h: = no directory or files". I am surprised. The file exist indeed!! can anyone answer my question? Thank u very much~~~ |
From: Olivier D. <Oli...@rd...> - 2001-12-11 14:34:38
|
hi Jim, Can you describe a little more the MPLS_OP_NF_FWD action ? If i understand well, the sutff is : - mark packet with iptable - use MPLS_OP_NF_FWD to retrieve the MOI info (and so the outgoing label) from the nfmark value - possibly use nfmark as filter criteria for TC as usual It look like good for me because it made a very little change in the kernel and haven't to maintain an mpls_index change in case of nfmark change. Just a point of clarification about the use of nfmark instead of mpls_index for the reason given previously (incomptability with nfmark route only stuff) Have you a different way to use this action and so let the normal nfmark behaviour work as usual ? I suppose mplsadm need to be modified to set up this action with the right nfmark value ? If so, i suppose you can leave both normal and mpls nfmark. The difference come with a different value for nfmark (only value setup with mplsadm result in a mpls processing) Regards, Olivier James R. Leu wrote: > Hello, > > I have (re)implemented my version of TC/DS enhanced mpls-linux. I would > like to describe what I have created so I can get feed back. Also > I would like to get examples from people of how to use TC and iptables > to actually excercise this new code and to show me what this implementation > cannot do. > > First this to keep in mind is that 'outgoing info' nolonger can be interpreted > as 'outgoing label'. A particular 'outgoing info' can fwd on to another > 'outgoing info' which may do a 'push'. 'incoming labels', aux_proto, and > mpls tunnels all point to 'outgoing info' (in addition 'outgoing info' can > point to other 'outgoing info'). I will refer to 'outgoing info' as > 'MOI' (in the code it stands for the mpls_outgoing_info structure). > > Incoming labels and MOI's have an array of 'instructions' associated > with them. Each instruction has a 'data block' associated with it. > The original set of instructions, have changed very little: > > MPLS_OP_POP -> IN: pop off top label (no data) > MPLS_OP_PEEK -> IN: make the top label the active 'incoming label' (no data) > MPLS_OP_PUSH -> OUT: push a label on to the top of the label stack > (label to push) > MPLS_OP_DLV -> IN: deliver the packet to a specify protocol handler > (protocol id to send the packet to ie IPv4 IPv6) > MPLS_OP_FWD -> IN: transfer control to mpls_output() (pointer to the MOI) > OUT: start processing the instructions wit the new MOI > (pointer to the new MOI) > MPLS_OP_SET -> IN: set the incoing interface > OUT: set the dst_entry on the skb [last step before TXing a > MPLS packet] (pointer to the dst_entry) > > These are the new instructions: > > *nfmark comes from skb > #dsmark comes from IP header > *tc_index comes from the skb > *EXP comes from the active incoming label > > MPLS_OP_NF_FWD -> IN/OUT: index into the datablock by using the (nfmark & mask) > start processing the MOI that was found. (array of MOIs) > MPLS_OP_DS_FWD -> IN: index into the datablock by using the (dsmark & mask) > start processing the MOI that was found. (array of MOIs) > MPLS_OP_TC_FWD -> OUT: index into the datablock by using the (tc_index & mask) > start processing the MOI that was found. (array of MOIs) > MPLS_OP_EXP_FWD -> IN: index into the datablock by using the (EXP) > start processing the MOI that was found. (array of MOIs) > MPLS_OP_SET_TC -> IN/OUT: set the tc_index (tc_index to use) > MPLS_OP_SET_DS -> IN/OUT: set the dsmark (DSCP to use) > MPLS_OP_SET_EXP -> IN/OUT: set EXP on the top label (EXP to use) > MPLS_OP_EXP2TC -> IN: index into the data block by using the (EXP) and set the > tc_index to the value found > MPLS_OP_EXP2DS -> IN: index into the data block by using the (EXP) and set the > dsmark to the value found > > > > So here are some examples: > > Egress LER: > > On input of label 100 EXP 1 gets DSCP 0x4, EXP 4 gets DSCP 0x7 > > MII(100) -> PEEK POP EXP2DS(1->0x4,4->0x7) DLV(IPv4) > > Ingress LER (DSCP): > > Packets going to 11.0.0.0/16 goes out with label 100, DSCP 0x4 get EXP 1, > DSCP 0x7 gets EXP 4 > > IPROUTE(11.0.0.0/16) -> MOI(1000) > MOI(1000) DS_FWD(0x4->MOI(500), 0x7->MOI(2000)) > MOI(500) SET_EXP (1) PUSH(100) SET(next hop info) > MOI(2000) SET_EXP (4) PUSH(100) SET(next hop info) > > IP routing tranfer control to mpls_output and starts processing MOI(1000). > MOI(1000) looks at the DSCP and starts processing either MOI(500) or > MOI(2000). MOI(500) and MOI(2000) set the EXP, puch the label, > set the dst_entry and then send the packet) > > (you could implement L-LSPs in a similar way, push differnt label in MOI(500) > and MOI(2000) and do not set the EXP value) > > Alternative: > > IPROUTE(11.0.0.0/16) -> MPLS_TUNNEL(mpls0) > mpls0 -> MOI(1000) > MOI(500) SET_EXP (1) PUSH(100) SET(next hop info) > MOI(2000) SET_EXP (4) PUSH(100) SET(next hop info) > > IP routing tranfer send the packet out interface mpls0. Interface mpls0 > transfers control to mpls_output and starts processing MOI(1000). > MOI(1000) looks at the DSCP and starts processing either MOI(500) or > MOI(2000). MOI(500) and MOI(2000) set the EXP, puch the label, > set the dst_entry and then send the packet) > > Ingress LER NFMARK and TCINDEX, work simlarly. > > Transit: > > INCOMING_LABEL(100) PEEK POP EXP2TC(1->0xF,4->0xE) -> MOI(10000) > MOI(10000) PUSH(100) SET(next hop info) > > Incoming label 100 looks at the EXP bits and sets tc_index to 0xF when > EXP is 1 and to 0xE when EXP is 4. MOI(10000) is responsible for > trasmitting the label. It pushed on label 100 (and the same EXP bits) > and send it on it way. As it leaved via the physical interface a packet > scheduler can look at the tc_index and schedule it appropriately. > > If you want to translate the EXP then you could use an EXP forward > to differnt MOIs that push on the same label, but set differnt EXP bits. > > Additional intructions? > > MPLS_OP_TC2EXP -> coule be use in a MOI to translate the tc_index set on > input to differnt EXP values. This would avoid having > to do a EXP FWD just to set differnt EXP values. > > MPLS_OP_DS2EXP -> same as above, but would look at DSCP in the IP header > and could only be execute on packet that came directly > from the IP layer. It would avoid having to have > seperate MOIs to implement E-LSPs. > > Comments, questions, political statments? > > Jim > -- FTR&D/DAC/CPN Technopole Anticipa | mailto:Oli...@fr... 2, Avenue Pierre Marzin | Phone: +(33) 2 96 05 28 80 F-22307 LANNION | Fax: +(33) 2 96 05 18 52 |
From: Kauder T. <Tho...@ic...> - 2001-12-11 13:38:49
|
-----Urspr=FCngliche Nachricht----- Von: Kauder Thorsten=20 Gesendet: Dienstag, 11. Dezember 2001 13:53 An: 'nc...@si...' Betreff: AW: [mpls-linux-general] LDP (linux-port) Hi Paul, The ldp-linux port does not act as you might expect. I'll try helping you to find the problem. I found out that first of all you have to create the routes before starting ldp. If you add routes after having started the ldp_linux they are not exchanged or used to create LSPs. In the Readme they just add a route to the other Host. I didn't try that and have no idea if that works. I allways use a dummy device on each computer and create routes pointing out that dummydevice. e.g. on A ifconfig dummy0 1.2.3.4 route add -net 20.1.1.1/24 gw 1.2.3.4 on B route add -net 20.1.1.1/24 gw A (not shure if the commands are correct bwcause I use Zebra and ospf to = create the routing-tables) I think this is a more realistic scenario. What surprised me most is that I had a problem with only one route to = be propagated. With two or more it worked. try adding the routes prior to starting ldp. (by the way mpls_fec only holds the routes and FECs for outgoing LSPs) hope this helps tell me if it doesn't Thorsten PS: Be careful stopping your ldp_session. allways first delete the = interface before exiting. Otherwise the labelmappings stay in /proc/net/ and it's a quite = annoying procedure getting rid of them again. |
From: ncc49a <nc...@si...> - 2001-12-11 09:52:15
|
Hi everybody, I have downloaded the latest ldp implementation from the CVS. I have followed the instructions exactly as specified in the README in /linux-port for a direct connection between 2 PCs. When done, a ldp session seems to have been established between the 2 linux LSRs. Showing "database", "session" and "route" all yield some results. However, when I tried to ead /proc/mpls_in, /proc/mpls_out, /proc/mpls_fec files, they were all blank, contrary to the README. That means no label bindings have been established between the 2 LSRs right? From the mailing list, I have noticed Mr Kauder Thorsten is doing something similiar at the moment. I wonder if you faced such an issue. I guess I must have missed out something. I will appreciate all help/advice provided. Thanks a lot! Regards, Paul |
From: James R. L. <jl...@mi...> - 2001-12-07 15:06:49
|
That would be great. Any howto's or examples that poeople have are always welcome. Either I'll add them to the package or post them on the mpls-linux project page. Thanks, Jim On Fri, Dec 07, 2001 at 11:25:47AM +0100, Kauder Thorsten wrote: > Hey Jim > before I forget it > Woul you like to have what I just posted in the form > of a short manual on how to start and stop a ldp-session > on two machines? > > Cheers Thorsten > > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu jl...@mi... |
From: James R. L. <jl...@mi...> - 2001-12-07 15:05:20
|
Your using the most recent version from CVS right? On Fri, Dec 07, 2001 at 11:17:49AM +0100, Kauder Thorsten wrote: > Hi Everyone, > I managed to get the LDP (linux-port) working and found out that one > has to be very carefull using it. > A single wrong input sometimes causes a segmentation-fault. > > Here's the scenario I established: > > dummy0 --------- eth0 eth0 ------- eth1 eth0 --------- dummy0 > <-----| LER 1 |-------------| LSR |------------| LER 2 |----> > 20.0.0.0/24 --------- 10.0.0.0/24 ------- 11.0.0.0/24 --------- 20.0.0.0/24 > > I have zebra running on all machines and propagate virtual routes pointing out the dummy devices using OSPF. > After the Routing-tables are correct on all mashines by typing: > > ./ldp_linux > > after hitting enter twice the prompt appears. > > On LSR: > > I add a global object at the LSR with the LSR-ID 10 > > add global 10 LSRID should be an ip address. On a Cisco the LSRID is the highest IP address attached to the router, or an address specified by the user (or the address of the first loopback interface). So make the LSRID one of the addresses of the linux box. You should also make sure that the LSRID is advertised as a /32 to all other routers. > then enable LDP on both interfaces > > add interface eth0 > add interface eth1 > > On LER1: > > add global 2 > add interface eth0 > > On LER2: > > add global 3 > add interface eth1 > > I found out that this order is the safest. > What happens now is that they really exchange labels wich is fine!! but I still have some problems: > - If I change the routing table while LDP is running the label-mapping stays unchanged. ( if I got you right. with ldp_zebra this should work ) In theory. > - you're adding interfaces by their names but delete them by ID. deleting with the name as argument causes a crash quite often. You can only delete things by their index. ldp-portable keeps track of things by indexes, not names. > - according to /proc/net/mpls-in a forward on LSR is only assigned to the routes pointing to the LER who was activated first ( here LER1 ). > in other words the mappings aren't updated if a new LDP-Router is added. > That's all not so important for my purposes. It works somehow..... Hmmm. I plan to spend sometime working on ldp-portable once I finish up my most recent set of change to mpls-linux. Maybe at that time I can try to duplicate your setup and help debug it. > The thing I could really use is support for lots of label-mappings. Right now, after a bit more than a hundred label-mappings there > appears one partial labelmapping (only FEC and label no op-code..) Then nothing. > This occurs not only when using LDP but also when mapping the labels using the mplsadm tool. So I guess this is rather a mpls > than a ldp problem. I really need at least 1000 labels for test-purposes. > Would that be possible or is there a lack of memory somewhere ??? Hmmm. very interesting. I haven't done any mpls-linux stress testing yet. I will do some testing for this. > greetings > Thorsten Thanks you for your feedback. I'll see what I can do to help. Jim -- James R. Leu jl...@mi... |
From: Kauder T. <Tho...@ic...> - 2001-12-07 10:25:57
|
Hey Jim before I forget it Woul you like to have what I just posted in the form of a short manual on how to start and stop a ldp-session on two machines? Cheers Thorsten |