Thread: [mpls-linux-general] Debian GNU/Linux MPLS installation problem
Status: Beta
Brought to you by:
jleu
|
From: Razvan D. <raz...@gm...> - 2005-07-17 13:43:41
|
Hi everybody, we are trying to install MPLS support on some Linux machines and to get as many things working as we can; we began with configuring the kernel an test= ing the mpls utility using the iproute2 application suite; we chose the Debian GNU/Linux distribution because we are quite accustomed to it and we can pro= ceed much faster with this project. However we ran into many problems some of which we were able to solve. I will make quite a detailed presentation of the things we did so far becau= se we don't want to miss anything important, in case anyone can help us. First of all, if anyone has managed to install a functional MPLS support on= a Debian GNU/Linux distribution we kindly ask him/her to tell us the steps th= at he/she followed and where we went wrong. Ok, here it goes. We used Debian GNU/Linux 3.1 Sarge as our base system. We used the network install minimal CD available at http://cdimage.debian.org/debian-cd/3.1_r0a/i386/iso-cd/debian-31r0a-i386-n= etinst.iso After the installation, the first thing we had to do was compiling the kern= el with MPLS support. We used the latest available patch mpls-linux-1.946a. We used (as a test) 4 different kernel versions, namely 2.6.9, 2.6.10, 2.6.11.12 and 2.6.12.2. This is where we ran into some of our problems: only the 2.6.9 version of t= he kernel could be successfully patched; these are the links where you can fin= d output for the patch applied to the 2.6.9, 2.6.10, 2.6.11.12 and 2.6.12.2 k= ernel versions. 2.6.9: http://atlantis.cs.pub.ro/~razvand/output-2.6.9 2.6.10: http://atlantis.cs.pub.ro/~razvand/output-2.6.10 2.6.11.12: http://atlantis.cs.pub.ro/~razvand/output-2.6.11.12 2.6.12.2: http://atlantis.cs.pub.ro/~razvand/output-2.6.12.2 Because we didn't want to loose to much time, we chose the 2.6.9 kernel version. We did a # make menuconfig and added all the options presented in the QUICK.START help file. Afterwards, we compiled the kernel the Debian way (via make-dpkg) and created a debian package containing the compiled kernel image. We insta= lled the image, restarted the machine and booted the new kernel. Everything went smoothly. The next step was testing our kernel for MPLS support. By the way, we also tried compiling the 2.6.11.12 kernel (even thoug= h the patching failed). But, as we anticipated, the mpls files attached in th= e net/mpls directory were not compiled within the kernel (due to the fact tha= t the Makefile in the net/ directory itself couldn't be patched). Back to our 2.6.9 kernel, we browsed to the net/mpls/ directory and found that the mpls files were indeed compiled and thus inserted in the new kernel. We were left with testing mpls support inside this new kernel. As the mplsadm utility is now obsolete, we decided to try the iproute2 with MPLS patching (in order to use the mpls command). We used the RPM source package available at http://sourceforge.net/projects/mpls-linux Because Debian also has RPM support we could install the iproute2 rpm source package; this contained iproute2-2.6.9 and also various patches. We patched iproute2 (everything went fine). But when we tried to compile it, a lot of compilation errors emerged= . All of them were: "_SOME_KIND_OF_VARIABLE_OR_MACRO_ undeclared". We soon found that the header files mpls.h and gen_spec.h were not present in /usr/include/linux. I don't know why this happened (or maybe this usually happens). So we copied both files from /usr/src/linux/include/linux to /usr/include/linu= x. We also had to install the db library as our system lacked it. A simple command: # apt-get install lidb4.2-dev solved that problem. After that we managed to compile and install all the iproute2 utilit= ies, including mpls. What we had to do now was test the mpls utility. We used the example of James Leu located at http://mpls-linux.sourceforge.net/simple.php. We ha= ve four computers connected in a network, so there was no problem choosing two of them to test mpls. The command for uml1 went fine. However the fifth one, namely: # mpls nhlfe show lacked the "push gen 10000 set eth0 ipv4 xxx.xxx.xxx.xxx" part (obviously we were using the eth0 network interface and a private ip addres= s) The next command: # ip route show clearly showed the new route being added (but we were left with the missing part from the previous command) We moved to the second machine (this is where our problems increase)= . The third command: # mpls ilm add label gen 10000 labelspace 0 give us "Segmentation fault" the next time we try to run it it just blocks and does nothing. We were left with debugging these problems. Although, somehow empirical, we used printing in order to get a grip of the code flow. Thus we managed to find out exactly where our problems ta= ke place. I will show the sequence of function call that finally give us Segmentation fault, and then the sequence that give us the blocking command= . We are referring to the iproute2-2.6.9 patched source code. segmentation fault: mpls/mpls.c int main (void) -> do_ilm -> mpls_ilm_modify -> rtnl_talk (lib/libnetlink.c) -> status =3D send_msg (rtnl->fd, &msg, 0); this is the line where it cracks :-) blocking command: mpls/mpls.c int main (void) -> ll_init_map (&rth1) (lib/ll_map.c) -> -> rtnl_dump_filter (lib/libnetlink.c) -> -> status =3D recvmsg (rth->fd, &msg, 0); this is the line where it blocks we am not sure if the failure of this command has anything to do with the failure of the command for uml1 (# mpls nhlfe show - which lacks part of th= e message) to make matter worse, we think the problem may affect the kernel; after the segmentation fault message, any attempt to shut down or reboot the machine will end up in a block with the following message: Deactivating swap ... umount: tmps busy - remounted read-only done. unmounting local filesystems ... umount: tmpfs busy - remounted read only umount: /: device is busy done. mount: / is busy Rebooting ... right here it hangs (have to restart it manually) Many other thing stop working actually, so the problem may affect the kernel a bit more. We are sorry for the long message, but we wanted to show in detail everything we have done so that it may be easier for others to spot the pro= blem and help us. Thank you very much, Razvan & Dorin |
|
From: James R. L. <jl...@mi...> - 2005-07-17 19:52:44
|
Please see my recent post about debian packages. On Sun, Jul 17, 2005 at 04:43:32PM +0300, Razvan Deaconescu wrote: > Hi everybody, >=20 > we are trying to install MPLS support on some Linux machines and to get as > many things working as we can; we began with configuring the kernel an te= sting > the mpls utility using the iproute2 application suite; we chose the Debian > GNU/Linux distribution because we are quite accustomed to it and we can p= roceed > much faster with this project. >=20 > However we ran into many problems some of which we were able to solve. > I will make quite a detailed presentation of the things we did so far bec= ause > we don't want to miss anything important, in case anyone can help us. >=20 > First of all, if anyone has managed to install a functional MPLS support = on a > Debian GNU/Linux distribution we kindly ask him/her to tell us the steps = that > he/she followed and where we went wrong. >=20 > Ok, here it goes. >=20 > We used Debian GNU/Linux 3.1 Sarge as our base system. We used the network > install minimal CD available at > http://cdimage.debian.org/debian-cd/3.1_r0a/i386/iso-cd/debian-31r0a-i386= -netinst.iso >=20 > After the installation, the first thing we had to do was compiling the ke= rnel > with MPLS support. We used the latest available patch mpls-linux-1.946a. > We used (as a test) 4 different kernel versions, namely 2.6.9, 2.6.10, > 2.6.11.12 and 2.6.12.2. >=20 > This is where we ran into some of our problems: only the 2.6.9 version of= the > kernel could be successfully patched; these are the links where you can f= ind > output for the patch applied to the 2.6.9, 2.6.10, 2.6.11.12 and 2.6.12.2= kernel > versions. >=20 > 2.6.9: http://atlantis.cs.pub.ro/~razvand/output-2.6.9 > 2.6.10: http://atlantis.cs.pub.ro/~razvand/output-2.6.10 > 2.6.11.12: http://atlantis.cs.pub.ro/~razvand/output-2.6.11.12 > 2.6.12.2: http://atlantis.cs.pub.ro/~razvand/output-2.6.12.2 >=20 > Because we didn't want to loose to much time, we chose the 2.6.9 > kernel version. We did a > # make menuconfig > and added all the options presented in the QUICK.START help file. >=20 > Afterwards, we compiled the kernel the Debian way (via make-dpkg) > and created a debian package containing the compiled kernel image. We ins= talled > the image, restarted the machine and booted the new kernel. Everything we= nt > smoothly. The next step was testing our kernel for MPLS support. > By the way, we also tried compiling the 2.6.11.12 kernel (even tho= ugh > the patching failed). But, as we anticipated, the mpls files attached in = the > net/mpls directory were not compiled within the kernel (due to the fact t= hat > the Makefile in the net/ directory itself couldn't be patched). >=20 > Back to our 2.6.9 kernel, we browsed to the net/mpls/ directory > and found that the mpls files were indeed compiled and thus inserted in t= he > new kernel. We were left with testing mpls support inside this new kernel. > As the mplsadm utility is now obsolete, we decided to try the iproute2 wi= th > MPLS patching (in order to use the mpls command). >=20 > We used the RPM source package available at > http://sourceforge.net/projects/mpls-linux >=20 > Because Debian also has RPM support we could install the iproute2 > rpm source package; this contained iproute2-2.6.9 and also various patche= s. > We patched iproute2 (everything went fine). >=20 > But when we tried to compile it, a lot of compilation errors emerg= ed. > All of them were: "_SOME_KIND_OF_VARIABLE_OR_MACRO_ undeclared". We > soon found that the header files mpls.h and gen_spec.h were not present > in /usr/include/linux. > I don't know why this happened (or maybe this usually happens). So > we copied both files from /usr/src/linux/include/linux to /usr/include/li= nux. > We also had to install the db library as our system lacked it. > A simple command: > # apt-get install lidb4.2-dev > solved that problem. >=20 > After that we managed to compile and install all the iproute2 util= ities, > including mpls. >=20 > What we had to do now was test the mpls utility. We used the examp= le > of James Leu located at http://mpls-linux.sourceforge.net/simple.php. We = have > four computers connected in a network, so there was no problem choosing t= wo > of them to test mpls. > The command for uml1 went fine. However the fifth one, namely: > # mpls nhlfe show > lacked the "push gen 10000 set eth0 ipv4 xxx.xxx.xxx.xxx" part > (obviously we were using the eth0 network interface and a private ip addr= ess) > The next command: > # ip route show > clearly showed the new route being added (but we were left with the > missing part from the previous command) >=20 > We moved to the second machine (this is where our problems increas= e). > The third command: > # mpls ilm add label gen 10000 labelspace 0 > give us "Segmentation fault" > the next time we try to run it it just blocks and does nothing. We > were left with debugging these problems. >=20 > Although, somehow empirical, we used printing in order to get a gr= ip > of the code flow. Thus we managed to find out exactly where our problems = take > place. >=20 > I will show the sequence of function call that finally give us > Segmentation fault, and then the sequence that give us the blocking comma= nd. >=20 > We are referring to the iproute2-2.6.9 patched source code. >=20 > segmentation fault: > mpls/mpls.c > int main (void) -> do_ilm -> mpls_ilm_modify -> rtnl_talk > (lib/libnetlink.c) -> status =3D send_msg (rtnl->fd, &msg, 0); > this is the line where it cracks :-) >=20 > blocking command: > mpls/mpls.c > int main (void) -> ll_init_map (&rth1) (lib/ll_map.c) -> > -> rtnl_dump_filter (lib/libnetlink.c) -> > -> status =3D recvmsg (rth->fd, &msg, 0); > this is the line where it blocks >=20 > we am not sure if the failure of this command has anything to do with the > failure of the command for uml1 (# mpls nhlfe show - which lacks part of = the > message) >=20 > to make matter worse, we think the problem may affect the kernel; after t= he > segmentation fault message, any attempt to shut down or reboot the machine > will end up in a block with the following message: > Deactivating swap ... umount: tmps busy > - remounted read-only > done. > unmounting local filesystems ... umount: > tmpfs busy - remounted read only > umount: /: device is busy > done. > mount: / is busy > Rebooting ... >=20 > right here it hangs (have to restart it manually) >=20 > Many other thing stop working actually, so the problem may > affect the kernel > a bit more. >=20 > We are sorry for the long message, but we wanted to show in detail > everything we have done so that it may be easier for others to spot the p= roblem > and help us. >=20 > Thank you very much, > Razvan & Dorin >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op?k > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general --=20 James R. Leu jl...@mi... |
|
From: Razvan D. <raz...@gm...> - 2005-07-18 07:18:01
|
i tried those packages when i saw it hadn't work (forgot to mention that); i also checked most of the discution list, but nothing helped; the same problems arise :-( however, the fact that the kernel versions from 2.6.10 on cannot be patched has nothing to do with Debian (what is involved here is the mpls support, the linux kernel source code from http://www.kernel.org and the patch application) i think i will try working with an earlier version of mpls-linux to see if that works; could you please tell me if it is normal for the two headers mpls.h and gen_spec.h not to exist in the /usr/include/linux header folder and to be copied manua= lly thanks, Razvan On 7/17/05, James R. Leu <jl...@mi...> wrote: > Please see my recent post about debian packages. >=20 > On Sun, Jul 17, 2005 at 04:43:32PM +0300, Razvan Deaconescu wrote: > > Hi everybody, > > > > we are trying to install MPLS support on some Linux machines and to get= as > > many things working as we can; we began with configuring the kernel an = testing > > the mpls utility using the iproute2 application suite; we chose the Deb= ian > > GNU/Linux distribution because we are quite accustomed to it and we can= proceed > > much faster with this project. > > > > However we ran into many problems some of which we were able to solve. > > I will make quite a detailed presentation of the things we did so far b= ecause > > we don't want to miss anything important, in case anyone can help us. > > > > First of all, if anyone has managed to install a functional MPLS suppor= t on a > > Debian GNU/Linux distribution we kindly ask him/her to tell us the step= s that > > he/she followed and where we went wrong. > > > > Ok, here it goes. > > > > We used Debian GNU/Linux 3.1 Sarge as our base system. We used the netw= ork > > install minimal CD available at > > http://cdimage.debian.org/debian-cd/3.1_r0a/i386/iso-cd/debian-31r0a-i3= 86-netinst.iso > > > > After the installation, the first thing we had to do was compiling the = kernel > > with MPLS support. We used the latest available patch mpls-linux-1.946a= . > > We used (as a test) 4 different kernel versions, namely 2.6.9, 2.6.10, > > 2.6.11.12 and 2.6.12.2. > > > > This is where we ran into some of our problems: only the 2.6.9 version = of the > > kernel could be successfully patched; these are the links where you can= find > > output for the patch applied to the 2.6.9, 2.6.10, 2.6.11.12 and 2.6.12= .2 kernel > > versions. > > > > 2.6.9: http://atlantis.cs.pub.ro/~razvand/output-2.6.9 > > 2.6.10: http://atlantis.cs.pub.ro/~razvand/output-2.6.10 > > 2.6.11.12: http://atlantis.cs.pub.ro/~razvand/output-2.6.11.12 > > 2.6.12.2: http://atlantis.cs.pub.ro/~razvand/output-2.6.12.2 > > > > Because we didn't want to loose to much time, we chose the 2.6.9 > > kernel version. We did a > > # make menuconfig > > and added all the options presented in the QUICK.START help file. > > > > Afterwards, we compiled the kernel the Debian way (via make-dpkg= ) > > and created a debian package containing the compiled kernel image. We i= nstalled > > the image, restarted the machine and booted the new kernel. Everything = went > > smoothly. The next step was testing our kernel for MPLS support. > > By the way, we also tried compiling the 2.6.11.12 kernel (even t= hough > > the patching failed). But, as we anticipated, the mpls files attached i= n the > > net/mpls directory were not compiled within the kernel (due to the fact= that > > the Makefile in the net/ directory itself couldn't be patched). > > > > Back to our 2.6.9 kernel, we browsed to the net/mpls/ directory > > and found that the mpls files were indeed compiled and thus inserted in= the > > new kernel. We were left with testing mpls support inside this new kern= el. > > As the mplsadm utility is now obsolete, we decided to try the iproute2 = with > > MPLS patching (in order to use the mpls command). > > > > We used the RPM source package available at > > http://sourceforge.net/projects/mpls-linux > > > > Because Debian also has RPM support we could install the iproute= 2 > > rpm source package; this contained iproute2-2.6.9 and also various patc= hes. > > We patched iproute2 (everything went fine). > > > > But when we tried to compile it, a lot of compilation errors eme= rged. > > All of them were: "_SOME_KIND_OF_VARIABLE_OR_MACRO_ undeclared". We > > soon found that the header files mpls.h and gen_spec.h were not present > > in /usr/include/linux. > > I don't know why this happened (or maybe this usually happens). = So > > we copied both files from /usr/src/linux/include/linux to /usr/include/= linux. > > We also had to install the db library as our system lacked it. > > A simple command: > > # apt-get install lidb4.2-dev > > solved that problem. > > > > After that we managed to compile and install all the iproute2 ut= ilities, > > including mpls. > > > > What we had to do now was test the mpls utility. We used the exa= mple > > of James Leu located at http://mpls-linux.sourceforge.net/simple.php. W= e have > > four computers connected in a network, so there was no problem choosing= two > > of them to test mpls. > > The command for uml1 went fine. However the fifth one, namely: > > # mpls nhlfe show > > lacked the "push gen 10000 set eth0 ipv4 xxx.xxx.xxx.xxx" part > > (obviously we were using the eth0 network interface and a private ip ad= dress) > > The next command: > > # ip route show > > clearly showed the new route being added (but we were left with = the > > missing part from the previous command) > > > > We moved to the second machine (this is where our problems incre= ase). > > The third command: > > # mpls ilm add label gen 10000 labelspace 0 > > give us "Segmentation fault" > > the next time we try to run it it just blocks and does nothing. = We > > were left with debugging these problems. > > > > Although, somehow empirical, we used printing in order to get a = grip > > of the code flow. Thus we managed to find out exactly where our problem= s take > > place. > > > > I will show the sequence of function call that finally give us > > Segmentation fault, and then the sequence that give us the blocking com= mand. > > > > We are referring to the iproute2-2.6.9 patched source code. > > > > segmentation fault: > > mpls/mpls.c > > int main (void) -> do_ilm -> mpls_ilm_modify -> rtnl_talk > > (lib/libnetlink.c) -> status =3D send_msg (rtnl->fd, &msg, 0); > > this is the line where it cracks :-) > > > > blocking command: > > mpls/mpls.c > > int main (void) -> ll_init_map (&rth1) (lib/ll_map.c) -> > > -> rtnl_dump_filter (lib/libnetlink.c) -> > > -> status =3D recvmsg (rth->fd, &msg, 0); > > this is the line where it blocks > > > > we am not sure if the failure of this command has anything to do with t= he > > failure of the command for uml1 (# mpls nhlfe show - which lacks part o= f the > > message) > > > > to make matter worse, we think the problem may affect the kernel; after= the > > segmentation fault message, any attempt to shut down or reboot the mach= ine > > will end up in a block with the following message: > > Deactivating swap ... umount: tmps busy > > - remounted read-only > > done. > > unmounting local filesystems ... umount: > > tmpfs busy - remounted read only > > umount: /: device is busy > > done. > > mount: / is busy > > Rebooting ... > > > > right here it hangs (have to restart it manually) > > > > Many other thing stop working actually, so the problem may > > affect the kernel > > a bit more. > > > > We are sorry for the long message, but we wanted to show in deta= il > > everything we have done so that it may be easier for others to spot the= problem > > and help us. > > > > Thank you very much, > > Razvan & Dorin > > > > > > ------------------------------------------------------- > > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > > from IBM. Find simple to follow Roadmaps, straightforward articles, > > informative Webcasts and more! Get everything you need to get up to > > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op?k > > _______________________________________________ > > mpls-linux-general mailing list > > mpl...@li... > > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general >=20 > -- > James R. Leu > jl...@mi... >=20 >=20 > |
|
From: Razvan D. <raz...@gm...> - 2005-07-18 10:32:56
|
I see what you mean, but i don't feel like i would help the development by using pre-compiled packages; unless i try to compile them for myself i cannot find any bugs or get some insight of the whole project. However, as work needs to be done ;-) i will resort to these pre-compiled packages and make some time for trying to configure them the right (and hard) way. Razvan On 7/18/05, Joan Ruiz <jr...@sa...> wrote: > I suggest to work with pre-compiled versions of the mpls patched kernel. = If > the debian packages do not work, you can even try to install the rpm pack= age > to your debian box by using alien. I have it working in my debian box > without problems. |
|
From: James R. L. <jl...@mi...> - 2005-07-18 13:28:05
|
On Mon, Jul 18, 2005 at 10:17:51AM +0300, Razvan Deaconescu wrote: > i tried those packages when i saw it hadn't work (forgot to mention > that); i also checked most of the discution list, but nothing helped; > the same problems arise :-( >=20 > however, the fact that the kernel versions from 2.6.10 on cannot be > patched has nothing to do with Debian (what is involved here is the > mpls support, the linux kernel source code from http://www.kernel.org > and the patch application) Check out the pending patches at http://sf.net/projects/mpls-linux/ I beli= eve there is one for 2.6.10 there. > i think i will try working with an earlier version of mpls-linux to > see if that works; I wouldn't recommend that. There is a reason a newer versions are released, mostly bux fixes. > could you please tell me if it is normal for the two headers mpls.h > and gen_spec.h > not to exist in the /usr/include/linux header folder and to be copied man= ually Yes, because your not using a kernel-headers deb that has been modified for MPLS-linux. > thanks, > Razvan >=20 >=20 >=20 > On 7/17/05, James R. Leu <jl...@mi...> wrote: > > Please see my recent post about debian packages. > >=20 > > On Sun, Jul 17, 2005 at 04:43:32PM +0300, Razvan Deaconescu wrote: > > > Hi everybody, > > > > > > we are trying to install MPLS support on some Linux machines and to g= et as > > > many things working as we can; we began with configuring the kernel a= n testing > > > the mpls utility using the iproute2 application suite; we chose the D= ebian > > > GNU/Linux distribution because we are quite accustomed to it and we c= an proceed > > > much faster with this project. > > > > > > However we ran into many problems some of which we were able to solve. > > > I will make quite a detailed presentation of the things we did so far= because > > > we don't want to miss anything important, in case anyone can help us. > > > > > > First of all, if anyone has managed to install a functional MPLS supp= ort on a > > > Debian GNU/Linux distribution we kindly ask him/her to tell us the st= eps that > > > he/she followed and where we went wrong. > > > > > > Ok, here it goes. > > > > > > We used Debian GNU/Linux 3.1 Sarge as our base system. We used the ne= twork > > > install minimal CD available at > > > http://cdimage.debian.org/debian-cd/3.1_r0a/i386/iso-cd/debian-31r0a-= i386-netinst.iso > > > > > > After the installation, the first thing we had to do was compiling th= e kernel > > > with MPLS support. We used the latest available patch mpls-linux-1.94= 6a. > > > We used (as a test) 4 different kernel versions, namely 2.6.9, 2.6.10, > > > 2.6.11.12 and 2.6.12.2. > > > > > > This is where we ran into some of our problems: only the 2.6.9 versio= n of the > > > kernel could be successfully patched; these are the links where you c= an find > > > output for the patch applied to the 2.6.9, 2.6.10, 2.6.11.12 and 2.6.= 12.2 kernel > > > versions. > > > > > > 2.6.9: http://atlantis.cs.pub.ro/~razvand/output-2.6.9 > > > 2.6.10: http://atlantis.cs.pub.ro/~razvand/output-2.6.10 > > > 2.6.11.12: http://atlantis.cs.pub.ro/~razvand/output-2.6.11.12 > > > 2.6.12.2: http://atlantis.cs.pub.ro/~razvand/output-2.6.12.2 > > > > > > Because we didn't want to loose to much time, we chose the 2.6= .9 > > > kernel version. We did a > > > # make menuconfig > > > and added all the options presented in the QUICK.START help file. > > > > > > Afterwards, we compiled the kernel the Debian way (via make-dp= kg) > > > and created a debian package containing the compiled kernel image. We= installed > > > the image, restarted the machine and booted the new kernel. Everythin= g went > > > smoothly. The next step was testing our kernel for MPLS support. > > > By the way, we also tried compiling the 2.6.11.12 kernel (even= though > > > the patching failed). But, as we anticipated, the mpls files attached= in the > > > net/mpls directory were not compiled within the kernel (due to the fa= ct that > > > the Makefile in the net/ directory itself couldn't be patched). > > > > > > Back to our 2.6.9 kernel, we browsed to the net/mpls/ directory > > > and found that the mpls files were indeed compiled and thus inserted = in the > > > new kernel. We were left with testing mpls support inside this new ke= rnel. > > > As the mplsadm utility is now obsolete, we decided to try the iproute= 2 with > > > MPLS patching (in order to use the mpls command). > > > > > > We used the RPM source package available at > > > http://sourceforge.net/projects/mpls-linux > > > > > > Because Debian also has RPM support we could install the iprou= te2 > > > rpm source package; this contained iproute2-2.6.9 and also various pa= tches. > > > We patched iproute2 (everything went fine). > > > > > > But when we tried to compile it, a lot of compilation errors e= merged. > > > All of them were: "_SOME_KIND_OF_VARIABLE_OR_MACRO_ undeclared". We > > > soon found that the header files mpls.h and gen_spec.h were not prese= nt > > > in /usr/include/linux. > > > I don't know why this happened (or maybe this usually happens)= . So > > > we copied both files from /usr/src/linux/include/linux to /usr/includ= e/linux. > > > We also had to install the db library as our system lacked it. > > > A simple command: > > > # apt-get install lidb4.2-dev > > > solved that problem. > > > > > > After that we managed to compile and install all the iproute2 = utilities, > > > including mpls. > > > > > > What we had to do now was test the mpls utility. We used the e= xample > > > of James Leu located at http://mpls-linux.sourceforge.net/simple.php.= We have > > > four computers connected in a network, so there was no problem choosi= ng two > > > of them to test mpls. > > > The command for uml1 went fine. However the fifth one, namely: > > > # mpls nhlfe show > > > lacked the "push gen 10000 set eth0 ipv4 xxx.xxx.xxx.xxx" part > > > (obviously we were using the eth0 network interface and a private ip = address) > > > The next command: > > > # ip route show > > > clearly showed the new route being added (but we were left wit= h the > > > missing part from the previous command) > > > > > > We moved to the second machine (this is where our problems inc= rease). > > > The third command: > > > # mpls ilm add label gen 10000 labelspace 0 > > > give us "Segmentation fault" > > > the next time we try to run it it just blocks and does nothing= . We > > > were left with debugging these problems. > > > > > > Although, somehow empirical, we used printing in order to get = a grip > > > of the code flow. Thus we managed to find out exactly where our probl= ems take > > > place. > > > > > > I will show the sequence of function call that finally give us > > > Segmentation fault, and then the sequence that give us the blocking c= ommand. > > > > > > We are referring to the iproute2-2.6.9 patched source code. > > > > > > segmentation fault: > > > mpls/mpls.c > > > int main (void) -> do_ilm -> mpls_ilm_modify -> rtnl_talk > > > (lib/libnetlink.c) -> status =3D send_msg (rtnl->fd, &msg, 0); > > > this is the line where it cracks :-) > > > > > > blocking command: > > > mpls/mpls.c > > > int main (void) -> ll_init_map (&rth1) (lib/ll_map.c) -> > > > -> rtnl_dump_filter (lib/libnetlink.c) -> > > > -> status =3D recvmsg (rth->fd, &msg, 0); > > > this is the line where it blocks > > > > > > we am not sure if the failure of this command has anything to do with= the > > > failure of the command for uml1 (# mpls nhlfe show - which lacks part= of the > > > message) > > > > > > to make matter worse, we think the problem may affect the kernel; aft= er the > > > segmentation fault message, any attempt to shut down or reboot the ma= chine > > > will end up in a block with the following message: > > > Deactivating swap ... umount: tmps busy > > > - remounted read-only > > > done. > > > unmounting local filesystems ... umount: > > > tmpfs busy - remounted read only > > > umount: /: device is busy > > > done. > > > mount: / is busy > > > Rebooting ... > > > > > > right here it hangs (have to restart it manually) > > > > > > Many other thing stop working actually, so the problem may > > > affect the kernel > > > a bit more. > > > > > > We are sorry for the long message, but we wanted to show in de= tail > > > everything we have done so that it may be easier for others to spot t= he problem > > > and help us. > > > > > > Thank you very much, > > > Razvan & Dorin > > > > > > > > > ------------------------------------------------------- > > > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > > > from IBM. Find simple to follow Roadmaps, straightforward articles, > > > informative Webcasts and more! Get everything you need to get up to > > > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op?k > > > _______________________________________________ > > > mpls-linux-general mailing list > > > mpl...@li... > > > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general > >=20 > > -- > > James R. Leu > > jl...@mi... > >=20 > >=20 > > >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op?k > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general --=20 James R. Leu jl...@mi... |