Re: [mpls-linux-devel] Development LDP/MPLS
Status: Beta
Brought to you by:
jleu
From: Julien B. <jul...@gm...> - 2007-01-10 15:59:37
|
Hello James, Please, see my answer below. On 12/12/06, James R. Leu <jl...@mi...> wrote: > > Excellent to here from you. I'm glad you've made it this far. Now > lets dig in and start to understand what already exists. > > First let me start by explaining that ldp-portable is just a library. > It relies upon something called a "porting layer" to provide the low > level primitive and infrastructure to build a working implementation > of LDP (or CR-LDP in your case). Here is a diagram of the layers involved > and the types of things handled in that layer: > > --------------------------------- > user interface > - protocol configuration > - maintain configuration state > - status queries > - error notification > --------------------------------- > ldp-portable > - packet encode/decode > - message processing > --------------------------------- > porting layer > - socket activity: read/write, multicast > - timers > - memory allocation > - routing interaction > - interface interaction > --------------------------------- > > The API that needs to be filled in by the porting layer is defined in > ldp-portable/common/*_impl.h I don't really understand what is needed to be filled in. The files impl_*.c seem to fill the API completely. Could you explain me what is needed to be filled in, ldp-portable provides an API to the user interface (and the porting > layer for some OS driven actions), which is defined in > ldp-portable/ldp/ldp_cfg.c. This is called the configuration API. OK. quagga-mpls is a just one porting layer that exists (by far the most > mature). So that is our next step, lets look at how quagga-mpls interacts > with the configuration API defined in ldp_cfg.c. I read the Zebra Hacking Howto to understand how an implementation of a protocol works. Now, I understand how to interact with a protocol by the VTY. Most of the actual user interface for quagga's usage of ldp-portable > is defined in quagga-mpls/ldpd/ldp_vty.c. It relies upon the utilities > and structure implemented in ldp_interface.c, ldp.c and ldp_remote_peer.c > to maintain the configuration state for ldpd. It makes calls to the > configuration API to actually make ldp-portable do something. In > addition, > the code in ldp_zebra.c is responsible to feeding routing and interface > changes into ldp-portable. > > So for your first task, you'll need to figure out how you want the > user to configure CR-LDP. Most of the work is done. The user can already > configure LDP at the global and interface level, all that is needed is > a way to tell ldp-portable that we want to create a "tunnel" and configure > the details of the tunnel, like where it should terminate, and what > path to take to get there. There already exists the configuration > API for these components, but it is untested, and doesn't really > do anything. So that is what the 2nd (3rd, 4th, 5th ..... :-) step will > be. I think my first task is done. I figured out how the user can configure CR-LDP. I looked at the code, I saw that Nortel also wrote two files (ldp_nortel.[ch]) with a lot of accurate information in it concerning the CR-LDP protocol. I noticed that in the configuration API, the functions to create a "tunnel" already exist : extern mpls_return_enum ldp_cfg_tunnel_set(mpls_cfg_handle handle, ldp_tunnel * r, uint32_t flag); extern mpls_return_enum ldp_cfg_tunnel_test(mpls_cfg_handle handle, ldp_tunnel * r, uint32_t flag); extern mpls_return_enum ldp_cfg_tunnel_get(mpls_cfg_handle handle, ldp_tunnel * r, uint32_t flag); The files ldp_tunnel.[ch] contain few functions to deal with tunnels. So, now what you want me to do? I know this was a lot to digest, look at the code, ask questions and > hopefully we'll get you writting code shortly. I hope so! Again, thanks for your interest, I'm really happy that you're willing > to contribute and work on this aspect of mpls-linux. My pleasure ! I hope to hear from you soon. I'm sorry not to reply sooner but with the holidays and complexity of the project, sometimes I got lost into the code. Thank you for your help Julien On Mon, Dec 11, 2006 at 04:10:54PM +0100, Julien Bisconti wrote: > > Hello Sir, > > > > This email is to let you know that I can compile everything on the > > repository. So I am available to help you. I keep digging into > quagga-mpls > > now that I finally managed to install it. > > > > I hope to hear from you. > > > > Regards, > > > > Julien > > > > On 12/4/06, Julien Bisconti <jul...@gm...> wrote: > > > > > > Hello Sir, > > > > > >James R. Leu wrote: > > > > > >Hello Julien, > > > > > >Would you mind if we moved this discussion to the mpls-linux-genernal > > >mailing list? > > > > > > I just solved the problem of the gnu autotool (Murphy's law) so I > don't > > >think that moving this discussion will be necessary. But if you want to > > >move > > >the _whole_ discussion concerning the development of dynamic LSPs then > I > > >fully agree with you. > > > > > >Thank you again for the help. > > > > > >Here are the versions of auto tools I use on my development machine: > > > > > > autorun-3.18-1.2 > > > automake-1.9.6-2 > > > autoconf-2.59-7 > > > > > >In addition I do not believe you should be using 'update-autotools' > > >Instead you should just issue a: > > > > > > ./cleanup-jleu > > > autoreconf > > > ./configure > > > > > >from the quagga-mpls directory. > > > > > >On Mon, Dec 04, 2006 at 03:14:40PM +0100, Julien Bisconti wrote: > > > > > > Sir, > > > > > >As asked, I compiled every program on the repository except quagga-mpls > > >(the > > >one I think I really need) > > >The problem is I can't even try to compile, I never managed to get to > > >configure script with the gnu autotool. > > > > > >I googled the whole weekend to find out what is the error, apparently > it > > >seems to be a problem with the macro of aclocal. I re-pulled the code > of > > >quagga-mpls from perforce specifying that I want to keep the > modification > > >time of the original file, no way to get the configure script. > > > > > >Here is the error I get from autoreconf, from "aclocal -I m4" or from > the > > >update-autotools script) > > > > > >/usr/bin/m4:configure.ac:1416: ERROR: recursion limit of 1024 exceeded, > use > > >-L<N> to change it > > >autom4te-2.60: /usr/bin/m4 failed with exit status: 1 > > >aclocal-1.9: autom4te failed with exit status: 1 > > >autoreconf-2.60: aclocal failed with exit status: 1 > > > > > >I'm really stuck at this point. Everything else is allright. I tried to > > >compile the original version of quagga-0.99.5 (downloaded from the main > web > > >site) and I have the *same error*. I'm currently using Gentoo 2006.1and > > >here is the version of gnu autotool I use : > > > > > >autoheader (GNU Autoconf) 2.60 > > >autoconf (GNU Autoconf) 2.60 > > >ltmain.sh (GNU libtool) 1.5.22 (1.1220.2.365 2005/12/18 22:14:06) > > >libtoolize (GNU libtool) 1.5.22 > > >aclocal (GNU automake) 1.9.6 > > >automake (GNU automake) 1.9.6 > > > > > >I would really appreciate your help on this because no one else seems > to > > >have the same problem as I do. > > > > > >Thank you in advance. > > > > > >Julien > > > > > >On 12/1/06, James R. Leu <jl...@mi...> <jl...@mi...> > wrote: > > > > > > Hello, > > > > > >I'm glad to here your interested in helping with mpls-linux. > > >The best way to get involved is to pull the code from my > > >development tree via P4. Once you have that, make sure you know > > >how to build and install the software from the trees. Once you have > that > > >figured out, then we can start looking at the code and figuring out > were > > >you need to make changes. > > > > > >I use Fedora 5 as my development plateform. Other then that I use good > > >ol' > > >vi and gcc. For testing I use xen instances networked together via > bridge > > >interfaces. > > > > > >Let me know how you're progressing on pulling the code from P4 and > > >building > > >and installing the programs. > > > > > >On Tue, Nov 28, 2006 at 03:08:37PM +0100, Julien Bisconti wrote: > > > > > > Sir, > > > > > >My name is Julien Bisconti, I am currently a student in computer > science > > > > > > and > > > > > > I aim to test the dynamic configuration of LSP on a testbed. > > > > > >It is said in ldp-portable FAQ that it not implemented yet but > > > > > > everything is > > > > > > ready for it.Maybe I can help you with that. > > >Could you give a hint by telling me how (where in the code) can I > > > > > > implement > > > > > > CR-LDP? The development guide doesn't speak about LDP. > > > > > >By the way, I managed to install LDP (quagga/ldp-portable) and MPLS > > > > > > (kernel > > > > > > + iptables/iproute/ebtables) and I would like to know which software > do > > > > > > you > > > > > > use to develop those, in case I would code something. Because they are > a > > > > > > lot > > > > > > of files and I'm not used to it. > > > > > >I hope to ear from you soon. > > > > > >Regards, > > > > > >Julien Bisconti > > > > > >PS: I also sent a mail to the mailing list on SourceForge > > > > > > > > >-- > > >-------------------------------------------- > > >Julien BISCONTI <julien.bisconti(at)student.fundp.ac.be> > > >M.Sc. student in Computer Science, University of Namur > > >FUNDP, Belgium > > >Traineeship: UPC (Barcelona, Spain) > > > > > > -- > > >James R. Leu > > >jl...@mi... > > > > > > > > > > > > -- > > >-------------------------------------------- > > >Julien BISCONTI <julien.bisconti(at)student.fundp.ac.be> > > >M.Sc. student in Computer Science, University of Namur > > >FUNDP, Belgium > > >Traineeship: UPC (Barcelona, Spain) > > >GSM BELGIQUE: +32 474 598 418 > > >GSM ESPA?A: +34 671 168 458 > > > > > > > > >-- > > >-------------------------------------------- > > >Julien BISCONTI <jul...@st...> > > ><jul...@st...>M.Sc. student in Computer Science, > > >University of Namur > > >FUNDP, Belgium > > >GSM BELGIQUE: +32 474 598 418 > > >GSM ESPA?A: +34 671 168 458 > > > > > > > > > > > > -- > > -------------------------------------------- > > Julien BISCONTI <julien.bisconti(at)student.fundp.ac.be> > > M.Sc. student in Computer Science, University of Namur > > FUNDP, Belgium > > Traineeship: UPC (Barcelona, Spain) > > GSM BELGIQUE: +32 474 598 418 > > GSM ESPA?A: +34 671 168 458 > > -- > James R. Leu > jl...@mi... > > > -- -------------------------------------------- Julien BISCONTI <julien.bisconti(at)student.fundp.ac.be> M.Sc. student in Computer Science, University of Namur FUNDP, Belgium Traineeship: UPC (Barcelona, Spain) |