[mpls-linux-general] Follow on test of 1.956 - 1.955 patches as applied to kernel and iproute
Status: Beta
Brought to you by:
jleu
From: Chris R. <Chr...@nr...> - 2007-06-28 17:32:19
|
James, Marco This last test used the kernel binaries for 1.955 and iproute2 1.956 binaries I built. Now the iproute commands work, see below, ergo something isnt right with the kernel patches. Any ideas..... # ./mpls/mpls nhlfe add key 0 instructions push gen 16 nexthop eth0 ipv4 10.128.142.1 NHLFE entry key 0x00000002 mtu 0 propagate_ttl (0 bytes, 0 pkts) # ./ip/ip route add 192.168.120.0/24 via 10.128.142.1 mpls 0x2 # ./ip/ip route show 10.10.1.25 dev tun10 proto kernel scope link src 10.10.1.26 10.3.1.9 dev tun3 proto kernel scope link src 10.3.1.10 10.5.1.9 dev tun5 proto kernel scope link src 10.5.1.10 10.8.1.0/24 via 10.3.1.9 dev tun3 10.10.1.0/24 via 10.10.1.25 dev tun10 192.168.120.0/24 via 10.128.142.1 dev eth0 mpls 0x2 10.5.1.0/24 via 10.5.1.9 dev tun5 10.3.1.0/24 via 10.3.1.9 dev tun3 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 10.128.142.0/24 dev eth0 proto kernel scope link src 10.128.142.196 default via 10.128.142.1 dev eth0 Chris Robson wrote: > > James, Marco > > I installed binaries (kernel) 2.6.20-1.2316fc5.mpls.1.956 and binaries > (iproute) iproute2-2.6.16-060323 with the MPLS patches and get the > exact same error as before with the kernel 2.6.21 builds. The only > thing I can think is because I'm running "ip" and "mpls" commands from > the build directories and not the install directories is causing the > problem? What do you guys think? > > ...Chris > > Chris Robson wrote: >> >> Gentlemen >> >> I was able to build the 2.6.21 kernel with the 1.956 patches but had >> to make some small changes enclosed below. Further I was able to >> issue the example commands however as you can see the "ip route show" >> command dumps a garbage string: >> >> # ./mpls/mpls nhlfe add key 0 instructions push gen 16 nexthop eth0 >> ipv4 10.128.142.1 >> NHLFE entry key 0x00000002 mtu 0 propagate_ttl >> (0 bytes, 0 pkts) >> # ./ip/ip route add 192.168.120.0/24 via 10.128.142.1 mpls 0x2 >> >> # ./ip/ip route show >> 10.10.1.25 dev tun10 shim � 0x080004fffd01000 ................ >> 000000000 proto kernel scope link src 10.10.1.26 >> : >> : >> 10.3.1.9 dev tun3 shim � 0x08000400070000003 ................. >> 00000000000 proto kernel scope link src 10.5.1.10 >> 10.128.142.0/24 dev eth0 shim � 0x proto kernel scope link src >> 10.128.142.196 >> default via 10.128.142.1 dev eth0 shim � 0x >> >> The following are the changes I had to make to the linux-kernel.diif >> patches to get the kernel to compile and run. As for the iproute2 >> files, I just used James's iproute2 sources. >> >> --- /develop/MPLS/mpls-linux-1.956/patches/linux-kernel.diff >> 2007-05-04 00:51:06.000000000 -0400 >> +++ MPLS-MULTIPLE-PATCHES.linux-kernel.diff.CHRIS-MODS.28Jun07.patch >> 2007-06-28 12:54:08.000000000 -0400 >> @@ -311,10 +311,10 @@ >> diff -uNr --exclude=.p4config linux-kernel/include/linux/netdevice.h >> mpls-kernel/include/linux/netdevice.h >> --- linux-kernel/include/linux/netdevice.h 2007-03-24 >> 22:55:23.000000000 -0500 >> +++ mpls-kernel/include/linux/netdevice.h 2007-03-24 >> 23:28:29.000000000 -0500 >> -@@ -398,6 +398,7 @@ >> - void *ip6_ptr; /* IPv6 specific data */ >> - void *ec_ptr; /* Econet specific data */ >> +@@ -402,6 +402,7 @@ >> void *ax25_ptr; /* AX.25 specific data */ >> + struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data, >> + assign before registering */ >> + void *mpls_ptr; /* MPLS specific data */ >> >> /* >> @@ -2638,12 +2638,12 @@ >> + >> +static int __init init(void) >> +{ >> -+ return ipt_register_target(&ipt_mpls_reg); >> ++ return xt_register_target(&ipt_mpls_reg); >> +} >> + >> +static void __exit fini(void) >> +{ >> -+ ipt_unregister_target(&ipt_mpls_reg); >> ++ xt_unregister_target(&ipt_mpls_reg); >> +} >> + >> +module_init(init); >> @@ -2737,9 +2737,9 @@ >> >> +EXPORT_SYMBOL(ipv6_addr_type); >> +EXPORT_SYMBOL(ipv6_rcv); >> - EXPORT_SYMBOL(__ipv6_addr_type); >> EXPORT_SYMBOL(icmpv6_send); >> EXPORT_SYMBOL(icmpv6_statistics); >> + EXPORT_SYMBOL(icmpv6_err_convert); >> diff -uNr --exclude=.p4config linux-kernel/net/ipv6/Kconfig >> mpls-kernel/net/ipv6/Kconfig >> --- linux-kernel/net/ipv6/Kconfig 2007-03-24 22:55:24.000000000 -0500 >> +++ mpls-kernel/net/ipv6/Kconfig 2007-03-24 23:29:41.000000000 -0500 >> @@ -3033,12 +3033,12 @@ >> + >> +static int __init init(void) >> +{ >> -+ return ip6t_register_target(&ip6t_mpls_reg); >> ++ return xt_register_target(&ip6t_mpls_reg); >> +} >> + >> +static void __exit fini(void) >> +{ >> -+ ip6t_unregister_target(&ip6t_mpls_reg); >> ++ xt_unregister_target(&ip6t_mpls_reg); >> +} >> + >> +module_init(init); >> @@ -10063,7 +10063,7 @@ >> diff -uNr --exclude=.p4config linux-kernel/net/mpls/mpls_tunnel.c >> mpls-kernel/net/mpls/mpls_tunnel.c >> --- linux-kernel/net/mpls/mpls_tunnel.c 1969-12-31 18:00:00.000000000 >> -0600 >> +++ mpls-kernel/net/mpls/mpls_tunnel.c 2007-02-28 22:07:06.000000000 >> -0600 >> -@@ -0,0 +1,531 @@ >> +@@ -0,0 +1,532 @@ >> +/***************************************************************************** >> >> + * MPLS >> + * An implementation of the MPLS (MultiProtocol Label >> @@ -10457,7 +10457,8 @@ >> + break; >> + dev = mpls_mtp2dev(mtp); >> + } >> -+ retval = unregister_netdevice(dev); >> ++ unregister_netdevice(dev); >> ++ retval = 0; >> + break; >> + default: >> + retval = -EINVAL; >> >> >> > > |