mpls-linux-general Mailing List for MPLS for Linux (Page 125)
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: <pp...@cp...> - 2002-11-19 18:36:09
|
Hello James,
I am testing the new MPLS and LDP + Zebra and there=B4s a seg fault =
(apparently) when peers exchanges labels...
Here=B4s the latest messages from mplsd error and the backtrace:
ldp_label_mapping_with_xc: enter
before: type 0 label 0
after: type 1 label 16
ldp_label_mapping_with_xc: exit
_ldp_global_add_outlabel
Program received signal SIGSEGV, Segmentation fault.
0x0806c481 in ldp_outlabel_create_complete (g=3D0x80b6698, =
s=3D0x80bbda0, nh=3D0x1c,
a=3D0x80c0320) at ldp_outlabel.c:55
55 memcpy(&out->info.nexthop.u.ipif.ip,
BACKTRACE:
#0 0x0806c481 in ldp_outlabel_create_complete (g=3D0x80b6698, =
s=3D0x80bbda0,
nh=3D0x1c, a=3D0x80c0320) at ldp_outlabel.c:55
#1 0x0805f33b in ldp_label_mapping_process (g=3D0x80b6698, =
s=3D0x80bbda0, a=3D0x0,
e=3D0x0, r_attr=3D0x80c0320, fec=3D0xbfffb7b0) at =
ldp_label_mapping.c:910
#2 0x0806fb4c in ldp_state_process (g=3D0x80b6698, s=3D0x80bbda0, =
a=3D0x0, e=3D0x0,
event=3D5, msg=3D0x80c0320, from=3D0xbffff9b0) at =
ldp_state_funcs.c:346
#3 0x08070780 in ldp_state_machine (g=3D0x80b6698, session=3D0x80bbda0, =
adj=3D0x0,
entity=3D0x0, event=3D5, msg=3D0xbfffb8c0, from=3D0xbffff9b0)
at ldp_state_machine.c:265
#4 0x08070a93 in ldp_buf_process (g=3D0x80b6698, socket=3D0x80b5c28,
buf=3D0x809c620, extra=3D0x80bbda0, event=3DLDP_EVENT_LABEL,
local_from=3D0xbffff9b0, more=3D0xbfffd95c) at =
ldp_state_machine.c:481
#5 0x08070228 in ldp_event (handle=3D0x80b6698, socket=3D0x80b5c28,
user_from=3D0x0, if_handle=3D0x0, buf=3D0x0, extra=3D0x80bbda0,
event=3DLDP_EVENT_TCP_DATA) at ldp_state_machine.c:134
#6 0x0804a6f7 in mplsd_read (thread=3D0x1) at impl_socket.c:75
#7 0x0807d58c in thread_call (thread=3D0xbffffab0) at thread.c:647
#8 0x0804c267 in main (argc=3D3, argv=3D0xbffffab0) at mpls_main.c:224
#9 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
Thanks!
Pl=EDnio de Paula
UNICAMP/Brazil
-----Mensagem original-----
De: James R. Leu [mailto:jl...@mi...]
Enviada em: ter=E7a-feira, 19 de novembro de 2002 05:25
Para: mpl...@li...
Assunto: [mpls-linux-general] New releases
Take a look at the ChangeLogs for info about the releases:
http://osdn.dl.sourceforge.net/sourceforge/mpls-linux/ldp-portable-0.300.=
tar.gz
http://sourceforge.net/project/shownotes.php?release_id=3D123060
http://osdn.dl.sourceforge.net/sourceforge/mpls-linux/mpls-linux-1.172.ta=
r.gz
http://sourceforge.net/project/shownotes.php?release_id=3D122264
--=20
James R. Leu
-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing=20
your web site with SSL, click here to get a FREE TRIAL of a Thawte=20
Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
mpls-linux-general mailing list
mpl...@li...
https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
|
|
From: James R. L. <jl...@mi...> - 2002-11-19 06:20:45
|
Take a look at the ChangeLogs for info about the releases: http://osdn.dl.sourceforge.net/sourceforge/mpls-linux/ldp-portable-0.300.tar.gz http://sourceforge.net/project/shownotes.php?release_id=123060 http://osdn.dl.sourceforge.net/sourceforge/mpls-linux/mpls-linux-1.172.tar.gz http://sourceforge.net/project/shownotes.php?release_id=122264 -- James R. Leu |
|
From: James R. L. <jl...@mi...> - 2002-11-18 21:25:18
|
On Mon, Nov 18, 2002 at 09:55:26PM +0100, Olivier Delcourt wrote: > Hello, > > First, I'm sorry if this question has already been answered. Mailing list > archives seem to be down for hours now... strange. > > I've patched stock 2.4.19 kernel with the following options enabled: MPLS, > network packet filtering, IP tables support (packet mangling, MPLS target > support). > I've compiled mplsadm with no problems. I've patched > iproute2-2.4.7-now-ss020116 without any problems. > > Now, the problem is (same problem with another iproute2 version): > when trying > mplsadm -A -O 0 -o push:gen:16:set:eth0:ipv4:128.104.18.114 (returns key > 0x02 for example, which is also in /proc/net/mpls_out) > ip route add 128.104.18.114/32 lsp 0x02 You need to have atleast an outgoing device. This is not a restriction makde by MPLS, but a restriction made by the IPv4 stack. It needs the outgoing interface so it can figure out the source address to use on locally originated packets that use this route entry. Try something like: ip route add 128.104.18.114/32 lsp 0x02 dev eth1 > I got RTNETLINK: no such device. > > What's the problem? Kernel or iproute2? > > Thanks a lot. > O.D. > > > _________________________________________________________________ > MSN Messenger : discutez en direct avec vos amis ! > http://www.msn.fr/msger/default.asp > > > > ------------------------------------------------------- > This sf.net email is sponsored by: To learn the basics of securing > your web site with SSL, click here to get a FREE TRIAL of a Thawte > Server Certificate: http://www.gothawte.com/rd524.html > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu |
|
From: Olivier D. <s9...@ho...> - 2002-11-18 20:55:32
|
Hello, First, I'm sorry if this question has already been answered. Mailing list archives seem to be down for hours now... strange. I've patched stock 2.4.19 kernel with the following options enabled: MPLS, network packet filtering, IP tables support (packet mangling, MPLS target support). I've compiled mplsadm with no problems. I've patched iproute2-2.4.7-now-ss020116 without any problems. Now, the problem is (same problem with another iproute2 version): when trying mplsadm -A -O 0 -o push:gen:16:set:eth0:ipv4:128.104.18.114 (returns key 0x02 for example, which is also in /proc/net/mpls_out) ip route add 128.104.18.114/32 lsp 0x02 I got RTNETLINK: no such device. What's the problem? Kernel or iproute2? Thanks a lot. O.D. _________________________________________________________________ MSN Messenger : discutez en direct avec vos amis ! http://www.msn.fr/msger/default.asp |
|
From: Homer S. <h_j...@ma...> - 2002-11-15 22:13:59
|
Hi all, I'm trying to set up a network to test first intserv/rsvp and then mpls features. Not to have to change the my configuration, I'm using linux-mpls + rsvpd-TE deamon (from Ghent University). My network is very simple : 2 hosts (clients) connected to a central router. I've succeeded in making the software work with kernel 2.4.17 (and rsvpd 0.63) but things seems not that simple with a kernel 2.4.19 configuration. I've compiled this kernel on a development machine and installed it on my the hosts. There is no problem to make the client work but I cannot have the router start correctly. It's boot process is ok but there are some problems with the network services. The only noticeable differences between the router and the hosts are the number of eth accesses (4 instead of 1) and the use of zebra (version 0.92a) on this machine. It seems that zebra doesn't start and dmesg log contains plenty of "mpls_bogus_output" (see bellow). Did anybody heard about such problems ? Thanks :) Eric PS : dmesg log : ... parport0: PC-style at 0x378 [PCSPP,TRISTATE,EPP] eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.htmleepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <sa...@sa...> and others PCI: Found IRQ 11 for device 01:08.0 eth0: Intel Corp. 82801BA/BAM/CA/CAM Ethernet Controller, 00:03:47:69:0C:5F, IRQ 11. Board assembly 000000-000, Physical connectors present: RJ45 Primary interface chip i82555 PHY #1. General self-test: passed. Serial sub-system self-test: passed. Internal registers self-test: passed. ROM checksum self-test: passed (0x04f4518b). PCI: Found IRQ 11 for device 01:0d.0 eth1: Intel Corp. 82557/8/9 [Ethernet Pro 100] (#3), 00:D0:B7:49:0D:B2, IRQ 11. Board assembly 748565-005, Physical connectors present: RJ45 Primary interface chip i82555 PHY #1. General self-test: passed. Serial sub-system self-test: passed. Internal registers self-test: passed. ROM checksum self-test: passed (0xdbd8681d). PCI: Found IRQ 9 for device 01:0c.0 PCI: Sharing IRQ 9 with 00:1f.3 PCI: Sharing IRQ 9 with 00:1f.5 eth2: Intel Corp. 82557/8/9 [Ethernet Pro 100] (#2), 00:D0:B7:49:0F:41, IRQ 9. Board assembly 748565-005, Physical connectors present: RJ45 Primary interface chip i82555 PHY #1. General self-test: passed. Serial sub-system self-test: passed. Internal registers self-test: passed. ROM checksum self-test: passed (0xdbd8681d). PCI: Found IRQ 10 for device 01:0b.0 PCI: Sharing IRQ 10 with 00:1f.4 eth3: Intel Corp. 82557/8/9 [Ethernet Pro 100], 00:D0:B7:49:0C:0C, IRQ 10. Board assembly 748565-005, Physical connectors present: RJ45 Primary interface chip i82555 PHY #1. General self-test: passed. Serial sub-system self-test: passed. Internal registers self-test: passed. ROM checksum self-test: passed (0xdbd8681d). mpls_bogus_output: 192.168.18.2 -> 192.168.7.2, eth2 mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.5.2 -> 192.168.7.2, eth3 Linux agpgart interface v0.99 (c) Jeff Hartmann agpgart: Maximum main memory to use for agp memory: 202M agpgart: agpgart: Detected an Intel i815 Chipset. agpgart: AGP aperture is 64M @ 0xf8000000 memory : cd26e3e0 memory : 00000000 memory : cd26e420 mpls_bogus_output: 192.168.21.2 -> 193.252.19.244, eth0 mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.18.2 -> 192.168.7.2, eth2 mpls_bogus_output: 192.168.5.2 -> 192.168.7.2, eth3 memory : cd26e4a0 memory : 00000000 memory : cd26e4e0 mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.18.2 -> 192.168.7.2, eth2 mpls_bogus_output: 192.168.5.2 -> 192.168.7.2, eth3 mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.21.2 -> 193.252.19.244, eth0 mpls_bogus_output: 192.168.16.1 -> 192.168.7.2, ? mpls_bogus_output: 192.168.25.2 -> 216.239.32.10, eth0 mpls_bogus_output: 192.168.25.2 -> 216.239.32.10, eth0 mpls_bogus_output: 192.168.25.2 -> 216.239.32.10, eth0 mpls_bogus_output: 192.168.25.2 -> 216.239.38.10, eth0 mpls_bogus_output: 192.168.18.2 -> 192.168.7.2, eth2 mpls_bogus_output: 192.168.25.2 -> 216.239.38.10, eth0 mpls_bogus_output: 192.168.25.2 -> 216.239.38.10, eth0 mpls_bogus_output: 192.168.25.2 -> 216.239.32.10, eth0 mpls_bogus_output: 192.168.25.2 -> 216.239.36.10, eth0 mpls_bogus_output: 192.168.25.2 -> 216.239.34.10, eth0 mpls_bogus_output: 192.168.5.2 -> 192.168.7.2, eth3 (and so on...) le & ready to mingle? lavalife.com: Where singles click. Free to Search! http://www.lavalife.com/wp.epl?a=2716 -- __________________________________________________________ Sign-up for your own FREE Personalized E-mail at Mail.com http://www.mail.com/?sr=signup Single & ready to mingle? lavalife.com: Where singles click. Free to Search! http://www.lavalife.com/wp.epl?a=2716 |
|
From: James R. L. <jl...@mi...> - 2002-11-15 20:44:28
|
Make sure you are running a MPLS enabled kernel. grep for MPLS in the output of the kernel boot message. If you do not find MPLS in the boot message, you're not running a MPLS kernel. On Fri, Nov 15, 2002 at 02:03:43AM -0600, deepak wrote: > after i compiled mplsadm ....how do i look up what configurations im havin as > per the instruction /proc/net/mpls_out has the values ...but im not able to > find a mpls_out file ??i checked at other mpls_ ....files none gave me any > sought of configuration details how can i view the static lsp's some what like > sh ip route etc.... > thx > > > > ------------------------------------------------------- > This sf.net email is sponsored by: To learn the basics of securing > your web site with SSL, click here to get a FREE TRIAL of a Thawte > Server Certificate: http://www.gothawte.com/rd524.html > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu |
|
From: deepak <dxb...@wi...> - 2002-11-15 08:03:45
|
after i compiled mplsadm ....how do i look up what configurations im havin as per the instruction /proc/net/mpls_out has the values ...but im not able to find a mpls_out file ??i checked at other mpls_ ....files none gave me any sought of configuration details how can i view the static lsp's some what like sh ip route etc.... thx |
|
From: shanmugam g. <sha...@re...> - 2002-11-14 10:26:22
|
please unsubscribe me |
|
From: James R. L. <jl...@mi...> - 2002-11-13 18:01:58
|
On Wed, Nov 13, 2002 at 11:33:21AM -0600, deepak wrote: > hi whila i was doing the patch linux kernel for linuxfor mpls forlinnux > i used patch -p1 < ../mpls-linux-1.1/patches/linux-kernel.diff > i got this result after completion > HUNK# 1 FAILED AT 577 > 1 OUT OF 1 HUNK FAILED > saving rejects to file net/netsysm.c.rej The above failure is minor. If your are an experienced programmer you can look at the contents of net/netsysm.c.rej and try to hand apply the change to net/netsysm.c. If you don't feel confident in doing this then double check your kernel version and mpls-linux version. The best combination to use: -linux 2.4.19 (not from a distribution package, they add stuff to the kernel source they distribute) -mpls-linux-1.170 > > what is the problem?? > thx > > > > ------------------------------------------------------- > This sf.net email is sponsored by: Are you worried about > your web server security? Click here for a FREE Thawte > Apache SSL Guide and answer your Apache SSL security > needs: http://www.gothawte.com/rd523.html > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu |
|
From: deepak <dxb...@wi...> - 2002-11-13 17:33:23
|
hi whila i was doing the patch linux kernel for linuxfor mpls forlinnux i used patch -p1 < ../mpls-linux-1.1/patches/linux-kernel.diff i got this result after completion HUNK# 1 FAILED AT 577 1 OUT OF 1 HUNK FAILED saving rejects to file net/netsysm.c.rej what is the problem?? thx |
|
From: nitin p. <tac...@ya...> - 2002-11-13 07:32:39
|
Hi James, In my mpls topology, I am trying to measure the protection switching time. For this I want to timestamp the first packate as soon as it is sent through a perticular outgoing interface. How can this be done at easiest and quickest way? Thanks, Nitin __________________________________________________ Do you Yahoo!? U2 on LAUNCH - Exclusive greatest hits videos http://launch.yahoo.com/u2 |
|
From: James R. L. <jl...@mi...> - 2002-11-13 06:55:45
|
Hello, On Tue, Nov 12, 2002 at 09:48:04PM -0600, deepak wrote: > hi > im new to this field and i want to install the mpls-linux patch from source > forge.net do i need any more software other than ldp portable and MPLS-linux > to achieve MPLS capabilities of the linux box....and also if u can provide me Depends on what you want to do. If you want to create static LPS, then all you need is mpls-linux (and the source for iproute2 and/or iptables) If you want to use LDP to setup LSPs then you will need to the ldp-portable package (and the source to zebra-0.93a). > any link where i can get the process of instaling the MPLS_LINUX patch&ldp > portable downloaded from sourceforge it would be of grrt help > thx Start by reading QUICK.START from the mpls-linux-1.170 package. -- James R. Leu |
|
From: James R. L. <jl...@mi...> - 2002-11-13 06:48:11
|
On Sat, Nov 02, 2002 at 10:31:48AM +0800, Folke Aeon wrote: > hi, James :) > > i happened found the following data seems odd : > 0x00000003 2450571/-678892776/0 3 PUSH(gen 3) SET(eth0,11.0.1.1) > ~~~~~~~~~~~~ > i sent about 3GB data out of this label and > its counter becomes negative. can you tell me > how to change the definition of this counter > into long long int ? or how to clear the counter > back to zero when it reaches the MAX_INT? Why on earth would you want to send 3G of data on an LSP ;-) > thanks :) > folke. I've increased the counters to 'unsigned long' and I now treat them as unsigned longs when displaying them in /proc. Thanks! -- James R. Leu |
|
From: deepak <dxb...@wi...> - 2002-11-13 03:48:07
|
hi im new to this field and i want to install the mpls-linux patch from source forge.net do i need any more software other than ldp portable and MPLS-linux to achieve MPLS capabilities of the linux box....and also if u can provide me any link where i can get the process of instaling the MPLS_LINUX patch&ldp portable downloaded from sourceforge it would be of grrt help thx |
|
From: nitin p. <tac...@ya...> - 2002-11-12 19:32:41
|
use ethereal --- Plínio_de_Paula <pp...@cp...> wrote: > Okay! iproute2 patching is NOT essential! > I was curious 'cause tcpdump wasn´t showing > MPLS-encapsulated data... Had to upgrade to tcpdump > 3.7! :) > Now I can see MPLS-encapsulation! > > See You! > Plínio de Paula > UNICAMP/Brazil > > -----Mensagem original----- > De: Plínio de Paula > Enviada em: terça-feira, 12 de novembro de 2002 > 13:56 > Para: jl...@mi... > Cc: mpl...@li... > Assunto: RES: [mpls-linux-general] Actual Labelling > of Packets with > Zebra+LDP/MPLS > > > Is the iproute2 patching essential? > > Plínio de Paula > UNICAMP/Brazil > > -----Mensagem original----- > De: James R. Leu [mailto:jl...@ne...] > Enviada em: sexta-feira, 8 de novembro de 2002 02:21 > Para: Plínio de Paula > Cc: mpl...@li... > Assunto: Re: [mpls-linux-general] Actual Labelling > of Packets with > Zebra+LDP/MPLS > > > If you have compiled it with netlink the routes > should already have the > label binding done. > > To see if LDP has exchanged labels for routes, check > the output > of 'show ip route' from the zebra daemon. Then > check the output of > 'ip route show' (this is the ip from a MPLS patched > iproute2). > > If the output from zebra doesn't show LSP info, then > check your > OSPF and LDP config. If the output from 'ip' doesn > show LSP info, then > make sure you've compiled zebra with netlink > support. > > On Thu, Nov 07, 2002 at 04:54:34PM -0200, Plínio de > Paula wrote: > > Hello People, > > > > I have successfully installed LDP + Zebra and they > are now exchaning routes with labels... > > What do I need to do the real labelling of packets > in the ingress node? > > Does MPLS-patched iproute2 label the packets in > the ingress node with zebra+ldp automatically? > > > > Plínio de Paula > > UNICAMP/Brazil > > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by: See the NEW > Palm > > Tungsten T handheld. Power & Color in a compact > size! > > > http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en > > _______________________________________________ > > mpls-linux-general mailing list > > mpl...@li... > > > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general > > -- > James R. Leu > > > ------------------------------------------------------- > This sf.net email is sponsored by: > To learn the basics of securing your web site with > SSL, > click here to get a FREE TRIAL of a Thawte Server > Certificate: > http://www.gothawte.com/rd522.html > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general > > > ------------------------------------------------------- > This sf.net email is sponsored by: > To learn the basics of securing your web site with > SSL, > click here to get a FREE TRIAL of a Thawte Server > Certificate: > http://www.gothawte.com/rd522.html > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general __________________________________________________ Do you Yahoo!? U2 on LAUNCH - Exclusive greatest hits videos http://launch.yahoo.com/u2 |
|
From: <pp...@cp...> - 2002-11-12 18:03:28
|
Okay! iproute2 patching is NOT essential! I was curious 'cause tcpdump wasn=B4t showing MPLS-encapsulated data... = Had to upgrade to tcpdump 3.7! :) Now I can see MPLS-encapsulation! See You! Pl=EDnio de Paula UNICAMP/Brazil -----Mensagem original----- De: Pl=EDnio de Paula=20 Enviada em: ter=E7a-feira, 12 de novembro de 2002 13:56 Para: jl...@mi... Cc: mpl...@li... Assunto: RES: [mpls-linux-general] Actual Labelling of Packets with Zebra+LDP/MPLS Is the iproute2 patching essential? Pl=EDnio de Paula UNICAMP/Brazil -----Mensagem original----- De: James R. Leu [mailto:jl...@ne...] Enviada em: sexta-feira, 8 de novembro de 2002 02:21 Para: Pl=EDnio de Paula Cc: mpl...@li... Assunto: Re: [mpls-linux-general] Actual Labelling of Packets with Zebra+LDP/MPLS If you have compiled it with netlink the routes should already have the label binding done. To see if LDP has exchanged labels for routes, check the output of 'show ip route' from the zebra daemon. Then check the output of 'ip route show' (this is the ip from a MPLS patched iproute2). If the output from zebra doesn't show LSP info, then check your OSPF and LDP config. If the output from 'ip' doesn show LSP info, then make sure you've compiled zebra with netlink support. On Thu, Nov 07, 2002 at 04:54:34PM -0200, Pl=EDnio de Paula wrote: > Hello People, >=20 > I have successfully installed LDP + Zebra and they are now exchaning = routes with labels... > What do I need to do the real labelling of packets in the ingress = node? > Does MPLS-patched iproute2 label the packets in the ingress node with = zebra+ldp automatically? >=20 > Pl=EDnio de Paula > UNICAMP/Brazil >=20 >=20 >=20 > ------------------------------------------------------- > This sf.net email is sponsored by: See the NEW Palm=20 > Tungsten T handheld. Power & Color in a compact size! > http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general --=20 James R. Leu ------------------------------------------------------- This sf.net email is sponsored by:=20 To learn the basics of securing your web site with SSL,=20 click here to get a FREE TRIAL of a Thawte Server Certificate:=20 http://www.gothawte.com/rd522.html _______________________________________________ mpls-linux-general mailing list mpl...@li... https://lists.sourceforge.net/lists/listinfo/mpls-linux-general |
|
From: <pp...@cp...> - 2002-11-12 16:55:34
|
Is the iproute2 patching essential? Pl=EDnio de Paula UNICAMP/Brazil -----Mensagem original----- De: James R. Leu [mailto:jl...@ne...] Enviada em: sexta-feira, 8 de novembro de 2002 02:21 Para: Pl=EDnio de Paula Cc: mpl...@li... Assunto: Re: [mpls-linux-general] Actual Labelling of Packets with Zebra+LDP/MPLS If you have compiled it with netlink the routes should already have the label binding done. To see if LDP has exchanged labels for routes, check the output of 'show ip route' from the zebra daemon. Then check the output of 'ip route show' (this is the ip from a MPLS patched iproute2). If the output from zebra doesn't show LSP info, then check your OSPF and LDP config. If the output from 'ip' doesn show LSP info, then make sure you've compiled zebra with netlink support. On Thu, Nov 07, 2002 at 04:54:34PM -0200, Pl=EDnio de Paula wrote: > Hello People, >=20 > I have successfully installed LDP + Zebra and they are now exchaning = routes with labels... > What do I need to do the real labelling of packets in the ingress = node? > Does MPLS-patched iproute2 label the packets in the ingress node with = zebra+ldp automatically? >=20 > Pl=EDnio de Paula > UNICAMP/Brazil >=20 >=20 >=20 > ------------------------------------------------------- > This sf.net email is sponsored by: See the NEW Palm=20 > Tungsten T handheld. Power & Color in a compact size! > http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general --=20 James R. Leu |
|
From: James R. L. <jl...@mi...> - 2002-11-11 17:59:07
|
The only reason the user->kernel config is done via ioctls vs netlink is because of ease of implementation. At some point (when I have time) I will convert it back to using netlink (yes back, mpls-linux-1.0 used netlink for user->kernel comunication). On Mon, Nov 11, 2002 at 04:56:15PM +0100, Georg Klug wrote: > Hi Jim, > > I have a design question about the Linux MPLS code. Why are the > inlabels outlabel and the mapping between those set via usual > ioctl? Is there a special reason for not using the netlink socket? > > Kind regards > Georg Klug > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu |
|
From: Georg K. <gk...@gi...> - 2002-11-11 15:52:48
|
Hi Jim, I have a design question about the Linux MPLS code. Why are the inlabels outlabel and the mapping between those set via usual ioctl? Is there a special reason for not using the netlink socket? Kind regards Georg Klug |
|
From: Georg K. <gk...@gi...> - 2002-11-08 14:49:38
|
Hi all,
The following patch fixes my symptons, but I am not sure whether this
would be the right place and the right conditions und what the
do_mpls_labelspace() function is called. Probably there need a few flags
to be checked?!?
-------------- begin patch -----------------------------------------
diff -u mpls_zebra.c.orig mpls_zebra.c
--- mpls_zebra.c.orig Fri Nov 8 13:59:10 2002
+++ mpls_zebra.c Fri Nov 8 15:43:25 2002
@@ -12,6 +12,7 @@
#include "mpls_interface.h"
#include "impl_fib.h"
#include "impl_ifmgr.h"
+#include "impl_mpls.h"
/* All information about zebra. */
struct zclient *zclient =3D NULL;
@@ -39,9 +40,16 @@
int mpls_interface_add(int command, struct zclient *zclient,
zebra_size_t length) {
struct interface *ifp;
+ struct mpls_interface *mi;
ifp =3D zebra_interface_add_read(zclient->ibuf);
+ mi =3D (struct mpls_interface*)ifp->info;
+ if (mi !=3D NULL && mi->ldp !=3D NULL) {
+ /* Initialize labelspace to kernel */
+ do_mpls_labelspace(mi);
+ }
+
zlog_info("interface add %s index %d flags %ld metric %d mtu %d",
ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mt=
u);
-------------------------- End patch -------------------------
Kind regards,
Georg Klug
> -----Urspr=FCngliche Nachricht-----
> Von: mpl...@li...
> [mailto:mpl...@li...]Im Auftrag von
> Georg Klug
> Gesendet: Freitag, 8. November 2002 12:09
> An: Mpls-Linux-General
> Betreff: [mpls-linux-general] Problem no labelspace
>
>
> Hi all,
>
> today I tried sending of labeled packets between adjancent nodes. But
> I was facing the kernel message:
> "mpls_rcv: MPLS unicast packet recv on interface w/o a labelspace"
>
> I checked that the labelspace needs to be enabled by the LDP during the
> do_mpls_labelspace() function. But do_mpls_labelspace() only works if t=
he
> ifindex is set correctly. Anyway the function do_mpls_labelspace() is o=
nly
> called during config file reading, but the interface data is get afterw=
ards
> when reading the zebra data (after the config file read is done compelt=
ely).
>
> What do you think? Probably I am doing something wrong in teh config fi=
le?
>
> For your reference I am attaching the mplsd.conf file as well as the
> gdb session output:
>
> ----------------------------- mplsd.conf -------------------------
> !
> ! Zebra configuration saved from vty
> ! 2002/10/23 17:21:36
> !
> hostname uml-1
> password root
> enable password root
> log file /var/log/zebra/mplsd.log
> !
> ! router zebra
> !
> mpls ldp
> trace address
> trace binding
> trace debug
> trace error
> trace event
> trace general
> trace init
> trace label
> trace normal
> trace notification
> trace packet-dump
> trace packet
> trace path
> trace periodic
> trace policy
> trace route
> trace state
> trace task
> trace timer
> !
> interface lo
> !
> interface eth0
> ! mpls ldp
> !
> !
> interface eth1
> mpls ldp
> !
> !
> !interface tunl0
> !
> !interface gre0
> ! mpls ldp
> !
> !
> interface dummy0
> !
> line vty
> !
> -------------------- end of mplsd.conf --------------------------------=
---
>
>
> ----------------------------- gdb session ------------------------
> test:/home/test/zebra/mplsd# gdb mplsd
> GNU gdb 2002-04-01-cvs
> Copyright 2002 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and yo=
u are
> welcome to change it and/or distribute copies of it under certain condi=
tions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for deta=
ils.
> This GDB was configured as "i386-linux"...
> (gdb) b if_new
> Breakpoint 1 at 0x8078847: file if.c, line 57.
> (gdb) b do_mpls_labelspace
> Breakpoint 2 at 0x804a005: file impl_mpls.c, line 51.
> (gdb) run
> Starting program: /home/test/zebra-0.93b/mplsd/mplsd
>
> Breakpoint 1, if_new () at if.c:57
> 57 return ifp;
> (gdb) p *ifp
> $1 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '=
\0', flags =3D 0,
> metric =3D 0, mtu =3D 0,
> hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0=
, bandwidth =3D
> 0, desc =3D 0x0,
> distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x0, inf=
o =3D
> 0x0, stats
> =3D {rx_packets =3D 0,
> tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, rx_errors =3D 0, =
tx_errors =3D 0,
> rx_dropped =3D 0,
> tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed =3D 0, tx_compr=
essed =3D 0,
> collisions =3D 0,
> rx_length_errors =3D 0, rx_over_errors =3D 0, rx_crc_errors =3D 0,
> rx_frame_errors
> =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) list -
> 47 } if_master;
> 48 ^L
> 49 /* Create new interface structure. */
> 50 struct interface *
> 51 if_new ()
> 52 {
> 53 struct interface *ifp;
> 54
> 55 ifp =3D XMALLOC (MTYPE_IF, sizeof (struct interface));
> 56 memset (ifp, 0, sizeof (struct interface));
> (gdb) n
> warning: Cannot insert breakpoint 0:
> Cannot access memory at address 0x0
> (gdb) n
> 67 listnode_add (iflist, ifp);
> (gdb) bt
> #0 if_create () at if.c:67
> #1 0x0807905b in interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D=
1,
> argv=3D0xbffff898) at if.c:426
> #2 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D=
0x80b0aa0,
> cmd=3D0x0)
> at command.c:1963
> #3 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
> command.c:2001
> #4 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
> #5 0x08072c82 in vty_read_config (config_file=3D0x0,
> config_current_dir=3D0x8095180
> "mplsd.conf",
> config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:22=
66
> #6 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
> (gdb) p *ifp
> $2 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '=
\0', flags =3D 0,
> metric =3D 0, mtu =3D 0,
> hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0=
, bandwidth =3D
> 0, desc =3D 0x0,
> distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x0, inf=
o =3D
> 0x0, stats
> =3D {rx_packets =3D 0,
> tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, rx_errors =3D 0, =
tx_errors =3D 0,
> rx_dropped =3D 0,
> tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed =3D 0, tx_compr=
essed =3D 0,
> collisions =3D 0,
> rx_length_errors =3D 0, rx_over_errors =3D 0, rx_crc_errors =3D 0,
> rx_frame_errors
> =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) p *iflist
> $3 =3D {head =3D 0x0, tail =3D 0x0, count =3D 0, cmp =3D 0, del =3D 0}
> (gdb) n
> 68 ifp->connected =3D list_new ();
> (gdb) n
> 69 ifp->connected->del =3D (void (*) (void *)) connected_free;
> (gdb) n
> 71 if (if_master.if_new_hook)
> (gdb) list
> 66
> 67 listnode_add (iflist, ifp);
> 68 ifp->connected =3D list_new ();
> 69 ifp->connected->del =3D (void (*) (void *)) connected_free;
> 70
> 71 if (if_master.if_new_hook)
> 72 (*if_master.if_new_hook) (ifp);
> 73
> 74 return ifp;
> 75 }
> (gdb) n
> 72 (*if_master.if_new_hook) (ifp);
> (gdb) s
> mpls_if_new_hook (ifp=3D0x80b1248) at mpls_interface.c:34
> 34 ifp->info =3D mpls_if_new(ifp);
> (gdb) bt
> #0 mpls_if_new_hook (ifp=3D0x80b1248) at mpls_interface.c:34
> #1 0x0807888e in if_create () at if.c:72
> #2 0x0807905b in interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D=
1,
> argv=3D0xbffff898) at if.c:426
> #3 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D=
0x80b0aa0,
> cmd=3D0x0)
> at command.c:1963
> #4 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
> command.c:2001
> #5 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
> #6 0x08072c82 in vty_read_config (config_file=3D0x0,
> config_current_dir=3D0x8095180
> "mplsd.conf",
> config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:22=
66
> #7 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
> (gdb) list
> 29 int mpls_if_is_up(struct mpls_interface *mi) {
> 30 return if_is_up(mi->ifp);
> 31 }
> 32
> 33 int mpls_if_new_hook(struct interface *ifp) {
> 34 ifp->info =3D mpls_if_new(ifp);
> 35 return 0;
> 36 }
> 37
> 38 int mpls_if_delete_hook(struct interface *ifp) {
> (gdb) p *ifp
> $4 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '=
\0', flags =3D 0,
> metric =3D 0, mtu =3D 0,
> hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0=
, bandwidth =3D
> 0, desc =3D 0x0,
> distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x80b131=
8,
> info =3D 0x0,
> stats =3D {
> rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0,=
rx_errors =3D 0,
> tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 35 return 0;
> (gdb) p *ifp
> $5 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '=
\0', flags =3D 0,
> metric =3D 0, mtu =3D 0,
> hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0=
, bandwidth =3D
> 0, desc =3D 0x0,
> distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x80b131=
8, info =3D
> 0x80b1330, stats =3D {
> rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0,=
rx_errors =3D 0,
> tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> if_create () at if.c:74
> 74 return ifp;
> (gdb) bt
> #0 if_create () at if.c:74
> #1 0x0807905b in interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D=
1,
> argv=3D0xbffff898) at if.c:426
> #2 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D=
0x80b0aa0,
> cmd=3D0x0)
> at command.c:1963
> #3 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
> command.c:2001
> #4 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
> #5 0x08072c82 in vty_read_config (config_file=3D0x0,
> config_current_dir=3D0x8095180
> "mplsd.conf",
> config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:22=
66
> #6 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
> (gdb) p *ifp
> $6 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '=
\0', flags =3D 0,
> metric =3D 0, mtu =3D 0,
> hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0=
, bandwidth =3D
> 0, desc =3D 0x0,
> distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x80b131=
8, info =3D
> 0x80b1330, stats =3D {
> rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0,=
rx_errors =3D 0,
> tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff8=
98) at if.c:427
> 427 strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
> (gdb) list -
> 417 "Select an interface to configure\n"
> 418 "Interface's name\n")
> 419 {
> 420 struct interface *ifp;
> 421
> 422 ifp =3D if_lookup_by_name (argv[0]);
> 423
> 424 if (ifp =3D=3D NULL)
> 425 {
> 426 ifp =3D if_create ();
> (gdb) list
> 427 strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
> 428 }
> 429 vty->index =3D ifp;
> 430 vty->node =3D INTERFACE_NODE;
> 431
> 432 return CMD_SUCCESS;
> 433 }
> 434
> 435 /* For debug purpose. */
> 436 DEFUN (show_address,
> (gdb) p argv[0]
> $7 =3D 0x80b0de0 "lo"
> (gdb) b if_lookup_by_name
> Breakpoint 3 at 0x807896c: file if.c, line 146.
> (gdb) c
> Continuing.
>
> Breakpoint 3, if_lookup_by_name (name=3D0x80b0de0 "eth0") at if.c:146
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) p *node
> $8 =3D {next =3D 0x0, prev =3D 0x0, data =3D 0x80b1248}
> (gdb) p *ifp
> $9 =3D {name =3D "lo", '\0' <repeats 18 times>, ifindex =3D 0, status =3D=
0
> '\0', flags
> =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1318,
> info =3D 0x80b1330,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 152 return NULL;
> (gdb) n
> interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff8=
98) at if.c:424
> 424 if (ifp =3D=3D NULL)
> (gdb) n
> 426 ifp =3D if_create ();
> (gdb) n
>
> Breakpoint 1, if_new () at if.c:57
> 57 return ifp;
> (gdb) n
> warning: Cannot insert breakpoint 0:
> Cannot access memory at address 0x0
> (gdb) bt
> #0 0x0807885c in if_create () at if.c:65
> #1 0x0807905b in interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D=
1,
> argv=3D0xbffff898) at if.c:426
> #2 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D=
0x80b0aa0,
> cmd=3D0x0)
> at command.c:1963
> #3 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
> command.c:2001
> #4 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
> #5 0x08072c82 in vty_read_config (config_file=3D0x0,
> config_current_dir=3D0x8095180
> "mplsd.conf",
> config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:22=
66
> #6 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
> (gdb) b interface
> Breakpoint 4 at 0x8079043: file if.c, line 422.
> (gdb) c
> Continuing.
>
> Breakpoint 4, interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1,
> argv=3D0xbffff898)
> at if.c:422
> 422 ifp =3D if_lookup_by_name (argv[0]);
> (gdb) p *agrv[0]
> No symbol "agrv" in current context.
> (gdb) p *agrgv[0]
> No symbol "agrgv" in current context.
> (gdb) p *argv[0]
> $10 =3D 101 'e'
> (gdb) n
>
> Breakpoint 3, if_lookup_by_name (name=3D0x80b0de0 "eth1") at if.c:146
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) p *ifp
> $11 =3D {name =3D "lo", '\0' <repeats 18 times>, ifindex =3D 0, status =
=3D 0
> '\0', flags
> =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1318,
> info =3D 0x80b1330,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) p *ifp
> $12 =3D {name =3D "eth0", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1418,
> info =3D 0x80b1430,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 152 return NULL;
> (gdb) n
> interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff8=
98) at if.c:424
> 424 if (ifp =3D=3D NULL)
> (gdb) n
> 426 ifp =3D if_create ();
> (gdb) n
>
> Breakpoint 1, if_new () at if.c:57
> 57 return ifp;
> (gdb) n
> warning: Cannot insert breakpoint 0:
> Cannot access memory at address 0x0
> (gdb) n
> 67 listnode_add (iflist, ifp);
> (gdb) n
> 68 ifp->connected =3D list_new ();
> (gdb) p *ifp
> $13 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 =
'\0',
> flags =3D 0,
> metric =3D 0, mtu =3D 0,
> hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0=
, bandwidth =3D
> 0, desc =3D 0x0,
> distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x0, inf=
o =3D
> 0x0, stats
> =3D {rx_packets =3D 0,
> tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, rx_errors =3D 0, =
tx_errors =3D 0,
> rx_dropped =3D 0,
> tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed =3D 0, tx_compr=
essed =3D 0,
> collisions =3D 0,
> rx_length_errors =3D 0, rx_over_errors =3D 0, rx_crc_errors =3D 0,
> rx_frame_errors
> =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 69 ifp->connected->del =3D (void (*) (void *)) connected_free;
> (gdb) n
> 71 if (if_master.if_new_hook)
> (gdb) n
> 72 (*if_master.if_new_hook) (ifp);
> (gdb) n
> 74 return ifp;
> (gdb) p *ifp
> $14 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 =
'\0',
> flags =3D 0,
> metric =3D 0, mtu =3D 0,
> hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0=
, bandwidth =3D
> 0, desc =3D 0x0,
> distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x80b151=
8, info =3D
> 0x80b1530, stats =3D {
> rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0,=
rx_errors =3D 0,
> tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff8=
98) at if.c:427
> 427 strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
> (gdb) n
> 429 vty->index =3D ifp;
> (gdb) p *ifp
> $15 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) p *ifp
> $16 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) bt
> #0 interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbf=
fff898) at
> if.c:429
> #1 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D=
0x80b0aa0,
> cmd=3D0x0)
> at command.c:1963
> #2 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
> command.c:2001
> #3 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
> #4 0x08072c82 in vty_read_config (config_file=3D0x0,
> config_current_dir=3D0x8095180
> "mplsd.conf",
> config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:22=
66
> #5 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
> (gdb) n
> 430 vty->node =3D INTERFACE_NODE;
> (gdb) n
> 432 return CMD_SUCCESS;
> (gdb) p *ifp
> $17 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 0x080758fc in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D0x80=
b0aa0,
> cmd=3D0x0) at command.c:1960
> 1960 return CMD_SUCCESS_DAEMON;
> (gdb) c
> Continuing.
>
> Breakpoint 2, do_mpls_labelspace (mi=3D0x80b1530) at impl_mpls.c:51
> 51 if (!mi || !mi->ifp->ifindex) {
> (gdb) c
> Continuing.
> ldp_if_new:
> ENTER: ldp_cfg_if_set
>
> Breakpoint 3, if_lookup_by_name (name=3D0xbffff7a8 "eth1") at if.c:146
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) bt
> #0 if_lookup_by_name (name=3D0xbffff7a8 "eth1") at if.c:146
> #1 0x08049bf8 in ldp_ifmgr_open_if (ifmgr_handle=3D0x0, name=3D0x80b16=
40
> "eth1") at
> impl_ifmgr.c:54
> #2 0x08054dc1 in ldp_cfg_if_set (handle=3D0x80b1020, i=3D0x80b15dc, fl=
ag=3D3) at
> ldp_cfg.c:790
> #3 0x0804f518 in ldp_interface_create (mi=3D0x80b1530) at ldp_interfac=
e.c:40
> #4 0x0804def4 in ldp_intf (self=3D0x8095960, vty=3D0x80b0aa0, argc=3D0=
,
> argv=3D0xbffff898) at ldp_vty.c:1049
> #5 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D=
0x80b0aa0,
> cmd=3D0x0)
> at command.c:1963
> #6 0x08075936 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
> command.c:1981
> #7 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
> #8 0x08072c82 in vty_read_config (config_file=3D0x0,
> config_current_dir=3D0x8095180
> "mplsd.conf",
> config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:22=
66
> #9 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) p *ifp
> $18 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 150 return ifp;
> (gdb) n
> 0x08078999 152 return NULL;
> (gdb) list -
> 142 {
> 143 listnode node;
> 144 struct interface *ifp;
> 145
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> 147 {
> 148 ifp =3D getdata (node);
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> 150 return ifp;
> 151 }
> (gdb) p
> $19 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> ldp_ifmgr_open_if (ifmgr_handle=3D0x0, name=3D0x80b1640 "eth1") at impl=
_ifmgr.c:56
> 56 return ifh;
> (gdb) list -
> 46 }
> 47
> 48 ldp_if_handle ldp_ifmgr_open_if(ldp_ifmgr_handle ifmgr_handle,
> const char
> *name)
> 49 {
> 50 ldp_if_handle ifh;
> 51 char name2[IFNAMSIZ + 1];
> 52 strncpy(name2,name,IFNAMSIZ);
> 53
> 54 ifh =3D if_lookup_by_name(name2);
> 55
> (gdb) p *ifh
> $20 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> ldp_cfg_if_set (handle=3D0x80b1020, i=3D0x80b15dc, flag=3D3) at ldp_cfg=
.c:791
> 791 }
> (gdb) list -
> 781 LDP_ENTER(global->user_data, "ldp_cfg_if_set");
> 782
> 783 ldp_lock_get(global->global_lock); /* LOCK */
> 784
> 785 if (flag & LDP_CFG_ADD) {
> 786 if ((iff =3D ldp_if_create()) =3D=3D NULL) {
> 787 goto ldp_cfg_if_set_end;
> 788 }
> 789 if (ldp_if_handle_verify(global->ifmgr_handle, i->handle)
> =3D=3D LDP_FALSE)
> {
> 790 i->handle =3D ldp_ifmgr_open_if(global->ifmgr_handle, i->name=
);
> (gdb) list
> 791 }
> 792 iff->handle =3D i->handle;
> 793 i->index =3D iff->index;
> 794 strncpy(iff->name, i->name, LDP_MAX_IF_NAME);
> 795 _ldp_global_add_if(global, iff);
> 796 } else {
> 797 ldp_global_find_if_index(global, i->index, &iff);
> 798 }
> 799
> 800 if ((iff =3D=3D NULL) ||
> (gdb) bt
> #0 ldp_cfg_if_set (handle=3D0x80b1020, i=3D0x80b15dc, flag=3D3) at ldp=
_cfg.c:791
> #1 0x0804f518 in ldp_interface_create (mi=3D0x80b1530) at ldp_interfac=
e.c:40
> #2 0x0804def4 in ldp_intf (self=3D0x8095960, vty=3D0x80b0aa0, argc=3D0=
,
> argv=3D0xbffff898) at ldp_vty.c:1049
> #3 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D=
0x80b0aa0,
> cmd=3D0x0)
> at command.c:1963
> #4 0x08075936 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
> command.c:1981
> #5 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
> #6 0x08072c82 in vty_read_config (config_file=3D0x0,
> config_current_dir=3D0x8095180
> "mplsd.conf",
> config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:22=
66
> #7 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
> (gdb) p *i->handle
> $21 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 792 iff->handle =3D i->handle;
> (gdb) n
> 793 i->index =3D iff->index;
> (gdb) n
> 794 strncpy(iff->name, i->name, LDP_MAX_IF_NAME);
> (gdb) n
> 795 _ldp_global_add_if(global, iff);
> (gdb) n
> 796 } else {
> (gdb) p *i->handle
> $22 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) p *iff
> $23 =3D {_refcnt =3D 1, _global =3D {lle_next =3D 0x80b1070, lle_prev =3D=
0x80b1070},
> hello =3D 0x0,
> entity =3D 0x0, hellotime_send_timer =3D 0x0, hellotime_send_timer_du=
ration =3D 0,
> label_space =3D -1,
> handle =3D 0x80b1448, index =3D 1, message =3D 0x80b2708, buffer =3D =
0x80b16e8,
> local_source_address =3D {
> protocol =3D 0, u =3D {ipv6 =3D '\0' <repeats 15 times>, ipv4 =3D 0=
}}, dest =3D
> {_refcnt =3D 0, addr =3D {
> protocol =3D 2, u =3D {ipv6 =3D "\002\0\0t", '\0' <s> .......
> if_handle =3D 0x0}, name =3D "eth1", '\0' <repeats 11 times>, oper_=
state =3D
> LDP_DOWN, entity_index =3D 0}
> (gdb) n
> 798 }
> (gdb) n
> 800 if ((iff =3D=3D NULL) ||
> (gdb) n
> 804 if (flag & LDP_CFG_DEL) {
> (gdb) n
> 814 if (flag & LDP_IF_CFG_INDEX) {
> (gdb) n
> 817 if (flag & LDP_IF_CFG_LABEL_SPACE) {
> (gdb) p flag
> $24 =3D 3
> (gdb) n
> 818 iff->label_space =3D i->label_space;
> (gdb) n
> 820 global->configuration_sequence_number++;
> (gdb) n
> 822 retval =3D LDP_SUCCESS;
> (gdb) p *i
> $25 =3D {_refcnt =3D 0, _global =3D {lle_next =3D 0x0, lle_prev =3D 0x0=
}, hello =3D 0x0,
> entity =3D 0x0,
> hellotime_send_timer =3D 0x0, hellotime_send_timer_duration =3D 0, la=
bel_space =3D
> 0, handle =3D 0x80b1448,
> index =3D 1, message =3D 0x0, buffer =3D 0x0, local_source_address =3D
> {protocol =3D 0,
> u =3D {
> ipv6 =3D '\0' <repeats 15 times>, ipv4 =3D 0}}, dest =3D {_refcnt=
=3D 0, addr =3D
> {protocol =3D 0, u =3D {
> ipv6 =3D '\0' <repeats 15 times>, ipv4 =3D 0}}, port =3D 0,
> if_handle =3D 0x0},
> name =3D "eth1", '\0' <repeats 11 times>, oper_state =3D 0, entity_in=
dex =3D 0}
> (gdb) n
> 825 ldp_lock_release(global->global_lock); /* UNLOCK */
> (gdb) n
> 827 LDP_EXIT(global->user_data, "ldp_cfg_if_set");
> (gdb) n
> EXIT: ldp_cfg_if_set
> 829 return retval;
> (gdb) n
> ldp_interface_create (mi=3D0x80b1530) at ldp_interface.c:42
> 42 mi->ldp->entity.sub_index =3D mi->ldp->iff.index;
> (gdb) list -
> 32 void ldp_interface_create(struct mpls_interface *mi) {
> 33 struct ldp *ldp =3D mi->mpls->ldp;
> 34
> 35 mi->ldp->create_on_hold =3D LDP_FALSE;
> 36
> 37 strncpy(mi->ldp->iff.name,mi->ifp->name,IFNAMSIZ);
> 38 mi->ldp->iff.label_space =3D mi->labelspace;
> 39
> 40 ldp_cfg_if_set(ldp->h, &mi->ldp->iff, LDP_CFG_ADD |
> LDP_IF_CFG_LABEL_SPACE);
> 41
> (gdb) n
> 43 mi->ldp->entity.entity_type =3D LDP_DIRECT;
> (gdb) n
> 44 mi->ldp->entity.admin_state =3D LDP_DOWN;
> (gdb) n
> 46 ldp_cfg_entity_set(ldp->h, &mi->ldp->entity,
> (gdb) p *ldp->h
> $26 =3D {outlabel =3D {llh_first =3D 0x80b1020, llh_last =3D 0x80b1020}=
, resource =3D
> {llh_first =3D 0x80b1028,
> llh_last =3D 0x80b1028}, hop_list =3D {llh_first =3D 0x80b1030, llh=
_last =3D
> 0x80b1030}, inlabel =3D {
> llh_first =3D 0x80b1038, llh_last =3D 0x80b1038}, session =3D {llh_=
first =3D
> 0x80b1040,
> llh_last =3D 0x80b1040}, tunnel =3D {llh_first =3D 0x80b1048, llh_l=
ast =3D
> 0x80b1048}, entity =3D {
> llh_first =3D 0x80b1050, llh_last =3D 0x80b1050}, peer =3D {llh_fir=
st =3D
> 0x80b1058,
> llh_last =3D 0x80b1058}, attr =3D {llh_first =3D 0x80b1060, llh_las=
t =3D
> 0x80b1060},
> adj =3D {
> llh_first =3D 0x80b1068, llh_last =3D 0x80b1068}, iff =3D {llh_firs=
t =3D
> 0x80b1668,
> llh_last =3D 0x80b1668}, global_lock =3D 0x80b0e48, user_data =3D 0=
x80b1008,
> addr_tree =3D 0x80b1118,
> tree =3D 0x80b1128, nh_tree =3D 0x0, hello_socket =3D 0x80b1138, listen=
_socket =3D
> 0x80b11c0,
> timer_handle =3D 0, socket_handle =3D 0, fib_handle =3D 0x80a68f0, if=
mgr_handle =3D
> 0x0, mpls_handle =3D 10,
> configuration_sequence_number =3D 3, message_identifier =3D 1, lsr_id=
entifier =3D
> {protocol =3D 2, u =3D {
> ipv6 =3D "\0\0\0\0=A3\232\r@=A0\n\v\b\230=F8=FF=BF", ipv4 =3D 0}}=
,
> send_address_messages
> =3D LDP_TRUE,
> send_lsrid_mapping =3D LDP_TRUE, lsp_control_mode =3D LDP_CONTROL_ORD=
ERED,
> label_retention_mode =3D LDP_RETENTION_LIBERAL, lsp_repair_mode =3D
> LDP_REPAIR_GLOBAL,
> propagate_release =3D LDP_TRUE, label_merge =3D LDP_TRUE, loop_detect=
ion_mode =3D
> LDP_LOOP_NONE,
> ttl_less_domain =3D LDP_FALSE, local_tcp_port =3D 646, local_udp_port=
=3D 646,
> backoff_step =3D 15,
> no_route_to_peer_time =3D 10, transport_address =3D {protocol =3D 0, =
u =3D {ipv6 =3D
> '\0' <repeats 15 times>,
> ipv4 =3D 0}}, keepalive_timer =3D 45, keepalive_interval =3D 15,
> hellotime_timer
> =3D 15,
> hellotime_interval =3D 5, admin_state =3D LDP_ENABLE}
> (gdb) list -
> 36
> 37 strncpy(mi->ldp->iff.name,mi->ifp->name,IFNAMSIZ);
> 38 mi->ldp->iff.label_space =3D mi->labelspace;
> 39
> 40 ldp_cfg_if_set(ldp->h, &mi->ldp->iff, LDP_CFG_ADD |
> LDP_IF_CFG_LABEL_SPACE);
> 41
> 42 mi->ldp->entity.sub_index =3D mi->ldp->iff.index;
> 43 mi->ldp->entity.entity_type =3D LDP_DIRECT;
> 44 mi->ldp->entity.admin_state =3D LDP_DOWN;
> 45
> (gdb) list
> 46 ldp_cfg_entity_set(ldp->h, &mi->ldp->entity,
> 47 LDP_CFG_ADD | LDP_ENTITY_CFG_SUB_INDEX |
> LDP_ENTITY_CFG_ADMIN_STATE);
> 48
> 49 ldp_cfg_entity_get(ldp->h, &mi->ldp->entity, 0xFFFFFFFF);
> 50 ldp_cfg_if_get(ldp->h, &mi->ldp->iff, 0xFFFFFFFF);
> 51
> 52 ldp_interface_admin_state_finish(mi);
> 53 }
> 54
> 55 void ldp_interface_delete(struct mpls_interface *mi) {
> (gdb) p *mi->ldp->entity
> Structure has no component named operator*.
> (gdb) p mi->ldp->entity
> $27 =3D {_refcnt =3D 0, _global =3D {lle_next =3D 0x0, lle_prev =3D 0x0=
}, session_root =3D
> {llh_first =3D 0x0,
> llh_last =3D 0x0}, adj_root =3D {llh_first =3D 0x0, llh_last =3D 0x=
0},
> entity_type =3D
> LDP_DIRECT, p =3D {
> peer =3D 0x0, iff =3D 0x0}, state =3D LDP_STATE_NONE, inherit_flag =
=3D 962,
> require_hop_count =3D LDP_FALSE, sub_index =3D 1, index =3D 0, transp=
ort_address =3D
> {protocol =3D 0, u =3D {
> ipv6 =3D '\0' <repeats 15 times>, ipv4 =3D 0}}, protocol_version =
=3D 1 '\001',
> remote_tcp_port =3D 646,
> remote_udp_port =3D 646, max_pdu =3D 4096, keepalive_timer =3D 45,
> keepalive_interval =3D 15,
> hellotime_timer =3D 15, hellotime_interval =3D 5, session_setup_count=
=3D 0,
> session_backoff_timer =3D 10,
> label_distribution_mode =3D LDP_DISTRIBUTION_UNSOLICITED,
> path_vector_limit =3D 10
> '\n',
> hop_count_limit =3D 30 '\036', label_request_count =3D 0 '\0',
> label_request_timer
> =3D 30,
> loop_detection_mode =3D LDP_LOOP_NONE, keepalive_send_timer =3D 0x0,
> keepalive_recv_timer =3D 0x0,
> admin_state =3D LDP_DISABLE, remote_in_ttl_less_domain =3D LDP_FALSE,
> request_retry =3D LDP_TRUE,
> mesg_tx =3D 0, mesg_rx =3D 0, adj_count =3D 0}
> (gdb) p *mi
> $28 =3D {mpls =3D 0x80b0e20, ifp =3D 0x80b1448, labelspace =3D 0, conne=
cted =3D
> 0x0, ldp =3D
> 0x80b1548}
> (gdb) p *mi->ifp
> $29 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> ENTER: ldp_cfg_entity_set
> PRT: ldp_cfg_entity_set: entity not ready
>
> EXIT: ldp_cfg_entity_set
> 49 ldp_cfg_entity_get(ldp->h, &mi->ldp->entity, 0xFFFFFFFF);
> (gdb) p *mi->ifp
> $30 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> ENTER: ldp_cfg_entity_get
> EXIT: ldp_cfg_entity_get
> 50 ldp_cfg_if_get(ldp->h, &mi->ldp->iff, 0xFFFFFFFF);
> (gdb) n
> ENTER: ldp_cfg_if_get
> EXIT: ldp_cfg_if_get
> 52 ldp_interface_admin_state_finish(mi);
> (gdb) p *mi->ifp
> $31 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> ldp_intf (self=3D0x8095960, vty=3D0x80b0aa0, argc=3D0, argv=3D0xbffff89=
8) at
> ldp_vty.c:1050
> 1050 } else {
> (gdb) bt
> #0 ldp_intf (self=3D0x8095960, vty=3D0x80b0aa0, argc=3D0, argv=3D0xbff=
ff898) at
> ldp_vty.c:1050
> #1 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D=
0x80b0aa0,
> cmd=3D0x0)
> at command.c:1963
> #2 0x08075936 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
> command.c:1981
> #3 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
> #4 0x08072c82 in vty_read_config (config_file=3D0x0,
> config_current_dir=3D0x8095180
> "mplsd.conf",
> config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:22=
66
> #5 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
> (gdb) list -
> 1040 /* user is trying to create a new LDP interface */
> 1041 do_mpls_labelspace(mi);
> 1042 mi->ldp =3D ldp_if_new(mi);
> 1043 }
> 1044
> 1045 /* if the global LDP has been created, go ahead and tell LDP abo=
ut it
> 1046 * otherwise just mark the interface as "on hold"
> 1047 */
> 1048 if (mpls->ldp) {
> 1049 ldp_interface_create(mi);
> (gdb) list
> 1050 } else {
> 1051 mi->ldp->create_on_hold =3D LDP_TRUE;
> 1052 }
> 1053
> 1054 vty->node =3D MPLS_LDP_IF_NODE;
> 1055
> 1056 return CMD_SUCCESS;
> 1057 }
> 1058
> 1059 DEFUN(no_ldp_intf,
> (gdb) n
> 1054 vty->node =3D MPLS_LDP_IF_NODE;
> (gdb) n
> 1056 return CMD_SUCCESS;
> (gdb) p *mi->ifp
> $32 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 0x080758fc in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D0x80=
b0aa0,
> cmd=3D0x0) at command.c:1960
> 1960 return CMD_SUCCESS_DAEMON;
> (gdb) c
> Continuing.
>
> Breakpoint 4, interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1,
> argv=3D0xbffff898)
> at if.c:422
> 422 ifp =3D if_lookup_by_name (argv[0]);
> (gdb) n
>
> Breakpoint 3, if_lookup_by_name (name=3D0x80b0de0 "dummy0") at if.c:146
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 152 return NULL;
> (gdb) n
> interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff8=
98) at if.c:424
> 424 if (ifp =3D=3D NULL)
> (gdb) n
> 426 ifp =3D if_create ();
> (gdb) n
>
> Breakpoint 1, if_new () at if.c:57
> 57 return ifp;
> (gdb) n
> warning: Cannot insert breakpoint 0:
> Cannot access memory at address 0x0
> (gdb) n
> 67 listnode_add (iflist, ifp);
> (gdb) n
> 68 ifp->connected =3D list_new ();
> (gdb) n
> 69 ifp->connected->del =3D (void (*) (void *)) connected_free;
> (gdb) n
> 71 if (if_master.if_new_hook)
> (gdb) n
> 72 (*if_master.if_new_hook) (ifp);
> (gdb) n
> 74 return ifp;
> (gdb) n
> interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff8=
98) at if.c:427
> 427 strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
> (gdb) n
> 429 vty->index =3D ifp;
> (gdb) p *argv[0]
> $33 =3D 100 'd'
> (gdb) p argv[0]
> $34 =3D 0x80b0de0 "dummy0"
> (gdb) n
> 430 vty->node =3D INTERFACE_NODE;
> (gdb) n
> 432 return CMD_SUCCESS;
> (gdb) n
> 0x080758fc in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D0x80=
b0aa0,
> cmd=3D0x0) at command.c:1960
> 1960 return CMD_SUCCESS_DAEMON;
> (gdb) c
> Continuing.
> 2002/11/08 10:25:35 MPLS: MPLSd (0.93b) starts
>
> Breakpoint 3, if_lookup_by_name (name=3D0xbffff8a8 "lo") at if.c:146
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) c
> Continuing.
> 2002/11/08 10:25:36 MPLS: interface add lo index 1 flags 73 metric 1 mt=
u 16436
> 2002/11/08 10:25:36 MPLS: address add 127.0.0.1 to interface lo
> ENTER: _ldp_global_ifmgr_callback
> EXIT: _ldp_global_ifmgr_callback
>
> Breakpoint 3, if_lookup_by_name (name=3D0xbffff8a8 "eth0") at if.c:146
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) bt
> #0 if_lookup_by_name (name=3D0xbffff8a8 "eth0") at if.c:146
> #1 0x0807de30 in zebra_interface_add_read (s=3D0x80ae870) at zclient.c=
:591
> #2 0x0804b384 in mpls_interface_add (command=3D1, zclient=3D0x80ae818,=
length=3D50)
> at mpls_zebra.c:43
> #3 0x0807e2a2 in zclient_read (thread=3D0xbffff9e4) at zclient.c:867
> #4 0x080787a2 in thread_call (thread=3D0xbffff9e4) at thread.c:647
> #5 0x0804c229 in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:224
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) c
> Continuing.
> 2002/11/08 10:26:03 MPLS: interface add eth0 index 2 flags 4163 metric =
1 mtu
> 1500
> 2002/11/08 10:26:03 MPLS: address add 192.10.13.163 to interface eth0
> ENTER: _ldp_global_ifmgr_callback
> EXIT: _ldp_global_ifmgr_callback
>
> Breakpoint 3, if_lookup_by_name (name=3D0xbffff8a8 "dummy0") at if.c:14=
6
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) c
> Continuing.
> 2002/11/08 10:26:07 MPLS: interface add dummy0 index 3 flags 195 metric=
1 mtu
> 1500
> 2002/11/08 10:26:07 MPLS: address add 10.10.9.100 to interface dummy0
> ENTER: _ldp_global_ifmgr_callback
> EXIT: _ldp_global_ifmgr_callback
>
> Breakpoint 3, if_lookup_by_name (name=3D0xbffff8a8 "eth1") at if.c:146
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) n
> 146 for (node =3D listhead (iflist); node; nextnode (node))
> (gdb) n
> 148 ifp =3D getdata (node);
> (gdb) bt
> #0 if_lookup_by_name (name=3D0xbffff8a8 "eth1") at if.c:148
> #1 0x0807de30 in zebra_interface_add_read (s=3D0x80ae870) at zclient.c=
:591
> #2 0x0804b384 in mpls_interface_add (command=3D1, zclient=3D0x80ae818,=
length=3D50)
> at mpls_zebra.c:43
> #3 0x0807e2a2 in zclient_read (thread=3D0xbffff9e4) at zclient.c:867
> #4 0x080787a2 in thread_call (thread=3D0xbffff9e4) at thread.c:647
> #5 0x0804c229 in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:224
> (gdb) n
> 149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
> (gdb) n
> 150 return ifp;
> (gdb) n
> 0x08078999 152 return NULL;
> (gdb) n
> zebra_interface_add_read (s=3D0x80ae870) at zclient.c:594
> 594 if (! ifp)
> (gdb) list -
> 584 struct interface *ifp;
> 585 u_char ifname_tmp[INTERFACE_NAMSIZ];
> 586
> 587 /* Read interface name. */
> 588 stream_get (ifname_tmp, s, INTERFACE_NAMSIZ);
> 589
> 590 /* Lookup this by interface name. */
> 591 ifp =3D if_lookup_by_name (ifname_tmp);
> 592
> 593 /* If such interface does not exist, make new one. */
> (gdb) n
> 601 ifp->ifindex =3D stream_getl (s);
> (gdb) p *ifp
> $35 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) n
> 604 ifp->flags =3D stream_getl (s);
> (gdb) p *ifp
> $36 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 4, statu=
s =3D 0 '\0',
> flags =3D 0, metric =3D 0,
> mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_add=
r_len =3D 0,
> bandwidth =3D 0,
> desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connecte=
d =3D
> 0x80b1518,
> info =3D 0x80b1530,
> stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_byt=
es =3D
> 0, rx_errors
> =3D 0, tx_errors =3D 0,
> rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compress=
ed =3D 0,
> tx_compressed =3D 0,
> collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0,
> rx_crc_errors =3D 0,
> rx_frame_errors =3D 0,
> rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D=
0,
> tx_carrier_errors =3D 0,
> tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
> (gdb) bt
> #0 zebra_interface_add_read (s=3D0x80ae870) at zclient.c:604
> #1 0x0804b384 in mpls_interface_add (command=3D1, zclient=3D0x80ae818,=
length=3D50)
> at mpls_zebra.c:43
> #2 0x0807e2a2 in zclient_read (thread=3D0xbffff9e4) at zclient.c:867
> #3 0x080787a2 in thread_call (thread=3D0xbffff9e4) at thread.c:647
> #4 0x0804c229 in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:224
> (gdb) p *s
> $37 =3D {next =3D 0x0, data =3D 0x80ae890 "", putp =3D 53, getp =3D 27,=
endp =3D
> 53, size =3D
> 4096}
> (gdb) n
> 605 ifp->metric =3D stream_getl (s);
> (gdb) n
> 606 ifp->mtu =3D stream_getl (s);
> (gdb) n
> 607 ifp->bandwidth =3D stream_getl (s);
> (gdb) n
> 611 ifp->hw_addr_len =3D stream_getl (s);
> (gdb) n
> 612 if (ifp->hw_addr_len)
> (gdb) n
> 613 stream_get (ifp->hw_addr, s, ifp->hw_addr_len);
> (gdb) n
> 616 return ifp;
> (gdb) p *ifp
> $38 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 4, statu=
s =3D 0 '\0',
> flags =3D 4099,
> metric =3D 1, mtu =3D 1500, hw_type =3D 0, hw_addr =3D "\0\003Gq=D5."=
, '\0'
> <repeats 13
> times>,
> hw_addr_len =3D 6, bandwidth =3D 0, desc =3D 0x0, distribute_in =3D 0=
x0,
> distribute_out =3D 0x0,
> connected =3D 0x80b1518, info =3D 0x80b1530, stats =3D {rx_packets =3D=
0,
> tx_packets =3D
> 0, rx_bytes =3D 0,
> tx_bytes =3D 0, rx_errors =3D 0, tx_errors =3D 0, rx_dropped =3D 0,
> tx_dropped =3D 0,
> rx_multicast =3D 0,
> rx_compressed =3D 0, tx_compressed =3D 0, collisions =3D 0,
> rx_length_errors =3D 0,
> rx_over_errors =3D 0,
> rx_crc_errors =3D 0, rx_frame_errors =3D 0, rx_fifo_errors =3D 0,
> rx_missed_errors
> =3D 0,
> tx_aborted_errors =3D 0, tx_carrier_errors =3D 0, tx_fifo_errors =3D=
0,
> tx_heartbeat_errors =3D 0,
> tx_window_errors =3D 0}}
> (gdb) bt
> #0 zebra_interface_add_read (s=3D0x80ae870) at zclient.c:616
> #1 0x0804b384 in mpls_interface_add (command=3D1, zclient=3D0x80ae818,=
length=3D50)
> at mpls_zebra.c:43
> #2 0x0807e2a2 in zclient_read (thread=3D0xbffff9e4) at zclient.c:867
> #3 0x080787a2 in thread_call (thread=3D0xbffff9e4) at thread.c:647
> #4 0x0804c229 in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:224
> (gdb) quit
> ------------------------------------ end of gdb
> session -------------------------------------
>
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by: See the NEW Palm
> Tungsten T handheld. Power & Color in a compact size!
> http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en
> _______________________________________________
> mpls-linux-general mailing list
> mpl...@li...
> https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
>
|
|
From: Georg K. <gk...@gi...> - 2002-11-08 11:05:32
|
Hi all,
today I tried sending of labeled packets between adjancent nodes. But
I was facing the kernel message:
"mpls_rcv: MPLS unicast packet recv on interface w/o a labelspace"
I checked that the labelspace needs to be enabled by the LDP during the
do_mpls_labelspace() function. But do_mpls_labelspace() only works if the
ifindex is set correctly. Anyway the function do_mpls_labelspace() is onl=
y
called during config file reading, but the interface data is get afterwar=
ds
when reading the zebra data (after the config file read is done compeltel=
y).
What do you think? Probably I am doing something wrong in teh config file=
?
For your reference I am attaching the mplsd.conf file as well as the
gdb session output:
----------------------------- mplsd.conf -------------------------
!
! Zebra configuration saved from vty
! 2002/10/23 17:21:36
!
hostname uml-1
password root
enable password root
log file /var/log/zebra/mplsd.log
!
! router zebra
!
mpls ldp
trace address
trace binding
trace debug
trace error
trace event
trace general
trace init
trace label
trace normal
trace notification
trace packet-dump
trace packet
trace path
trace periodic
trace policy
trace route
trace state
trace task
trace timer
!
interface lo
!
interface eth0
! mpls ldp
!
!
interface eth1
mpls ldp
!
!
!interface tunl0
!
!interface gre0
! mpls ldp
!
!
interface dummy0
!
line vty
!
-------------------- end of mplsd.conf ----------------------------------=
-
----------------------------- gdb session ------------------------
test:/home/test/zebra/mplsd# gdb mplsd
GNU gdb 2002-04-01-cvs
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you =
are
welcome to change it and/or distribute copies of it under certain conditi=
ons.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for detail=
s.
This GDB was configured as "i386-linux"...
(gdb) b if_new
Breakpoint 1 at 0x8078847: file if.c, line 57.
(gdb) b do_mpls_labelspace
Breakpoint 2 at 0x804a005: file impl_mpls.c, line 51.
(gdb) run
Starting program: /home/test/zebra-0.93b/mplsd/mplsd
Breakpoint 1, if_new () at if.c:57
57 return ifp;
(gdb) p *ifp
$1 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '\0=
', flags =3D 0,
metric =3D 0, mtu =3D 0,
hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0, =
bandwidth =3D
0, desc =3D 0x0,
distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x0, info =
=3D 0x0, stats
=3D {rx_packets =3D 0,
tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, rx_errors =3D 0, tx=
_errors =3D 0,
rx_dropped =3D 0,
tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed =3D 0, tx_compres=
sed =3D 0,
collisions =3D 0,
rx_length_errors =3D 0, rx_over_errors =3D 0, rx_crc_errors =3D 0, rx=
_frame_errors
=3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) list -
47 } if_master;
48 ^L
49 /* Create new interface structure. */
50 struct interface *
51 if_new ()
52 {
53 struct interface *ifp;
54
55 ifp =3D XMALLOC (MTYPE_IF, sizeof (struct interface));
56 memset (ifp, 0, sizeof (struct interface));
(gdb) n
warning: Cannot insert breakpoint 0:
Cannot access memory at address 0x0
(gdb) n
67 listnode_add (iflist, ifp);
(gdb) bt
#0 if_create () at if.c:67
#1 0x0807905b in interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1,
argv=3D0xbffff898) at if.c:426
#2 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D0x=
80b0aa0,
cmd=3D0x0)
at command.c:1963
#3 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
command.c:2001
#4 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
#5 0x08072c82 in vty_read_config (config_file=3D0x0, config_current_dir=3D=
0x8095180
"mplsd.conf",
config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:2266
#6 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
(gdb) p *ifp
$2 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '\0=
', flags =3D 0,
metric =3D 0, mtu =3D 0,
hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0, =
bandwidth =3D
0, desc =3D 0x0,
distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x0, info =
=3D 0x0, stats
=3D {rx_packets =3D 0,
tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, rx_errors =3D 0, tx=
_errors =3D 0,
rx_dropped =3D 0,
tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed =3D 0, tx_compres=
sed =3D 0,
collisions =3D 0,
rx_length_errors =3D 0, rx_over_errors =3D 0, rx_crc_errors =3D 0, rx=
_frame_errors
=3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) p *iflist
$3 =3D {head =3D 0x0, tail =3D 0x0, count =3D 0, cmp =3D 0, del =3D 0}
(gdb) n
68 ifp->connected =3D list_new ();
(gdb) n
69 ifp->connected->del =3D (void (*) (void *)) connected_free;
(gdb) n
71 if (if_master.if_new_hook)
(gdb) list
66
67 listnode_add (iflist, ifp);
68 ifp->connected =3D list_new ();
69 ifp->connected->del =3D (void (*) (void *)) connected_free;
70
71 if (if_master.if_new_hook)
72 (*if_master.if_new_hook) (ifp);
73
74 return ifp;
75 }
(gdb) n
72 (*if_master.if_new_hook) (ifp);
(gdb) s
mpls_if_new_hook (ifp=3D0x80b1248) at mpls_interface.c:34
34 ifp->info =3D mpls_if_new(ifp);
(gdb) bt
#0 mpls_if_new_hook (ifp=3D0x80b1248) at mpls_interface.c:34
#1 0x0807888e in if_create () at if.c:72
#2 0x0807905b in interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1,
argv=3D0xbffff898) at if.c:426
#3 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D0x=
80b0aa0,
cmd=3D0x0)
at command.c:1963
#4 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
command.c:2001
#5 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
#6 0x08072c82 in vty_read_config (config_file=3D0x0, config_current_dir=3D=
0x8095180
"mplsd.conf",
config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:2266
#7 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
(gdb) list
29 int mpls_if_is_up(struct mpls_interface *mi) {
30 return if_is_up(mi->ifp);
31 }
32
33 int mpls_if_new_hook(struct interface *ifp) {
34 ifp->info =3D mpls_if_new(ifp);
35 return 0;
36 }
37
38 int mpls_if_delete_hook(struct interface *ifp) {
(gdb) p *ifp
$4 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '\0=
', flags =3D 0,
metric =3D 0, mtu =3D 0,
hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0, =
bandwidth =3D
0, desc =3D 0x0,
distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x80b1318,=
info =3D 0x0,
stats =3D {
rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, r=
x_errors =3D 0,
tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
35 return 0;
(gdb) p *ifp
$5 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '\0=
', flags =3D 0,
metric =3D 0, mtu =3D 0,
hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0, =
bandwidth =3D
0, desc =3D 0x0,
distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x80b1318,=
info =3D
0x80b1330, stats =3D {
rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, r=
x_errors =3D 0,
tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
if_create () at if.c:74
74 return ifp;
(gdb) bt
#0 if_create () at if.c:74
#1 0x0807905b in interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1,
argv=3D0xbffff898) at if.c:426
#2 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D0x=
80b0aa0,
cmd=3D0x0)
at command.c:1963
#3 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
command.c:2001
#4 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
#5 0x08072c82 in vty_read_config (config_file=3D0x0, config_current_dir=3D=
0x8095180
"mplsd.conf",
config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:2266
#6 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
(gdb) p *ifp
$6 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '\0=
', flags =3D 0,
metric =3D 0, mtu =3D 0,
hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0, =
bandwidth =3D
0, desc =3D 0x0,
distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x80b1318,=
info =3D
0x80b1330, stats =3D {
rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, r=
x_errors =3D 0,
tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff898=
) at if.c:427
427 strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
(gdb) list -
417 "Select an interface to configure\n"
418 "Interface's name\n")
419 {
420 struct interface *ifp;
421
422 ifp =3D if_lookup_by_name (argv[0]);
423
424 if (ifp =3D=3D NULL)
425 {
426 ifp =3D if_create ();
(gdb) list
427 strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
428 }
429 vty->index =3D ifp;
430 vty->node =3D INTERFACE_NODE;
431
432 return CMD_SUCCESS;
433 }
434
435 /* For debug purpose. */
436 DEFUN (show_address,
(gdb) p argv[0]
$7 =3D 0x80b0de0 "lo"
(gdb) b if_lookup_by_name
Breakpoint 3 at 0x807896c: file if.c, line 146.
(gdb) c
Continuing.
Breakpoint 3, if_lookup_by_name (name=3D0x80b0de0 "eth0") at if.c:146
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) p *node
$8 =3D {next =3D 0x0, prev =3D 0x0, data =3D 0x80b1248}
(gdb) p *ifp
$9 =3D {name =3D "lo", '\0' <repeats 18 times>, ifindex =3D 0, status =3D=
0 '\0', flags
=3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1318,
info =3D 0x80b1330,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
152 return NULL;
(gdb) n
interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff898=
) at if.c:424
424 if (ifp =3D=3D NULL)
(gdb) n
426 ifp =3D if_create ();
(gdb) n
Breakpoint 1, if_new () at if.c:57
57 return ifp;
(gdb) n
warning: Cannot insert breakpoint 0:
Cannot access memory at address 0x0
(gdb) bt
#0 0x0807885c in if_create () at if.c:65
#1 0x0807905b in interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1,
argv=3D0xbffff898) at if.c:426
#2 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D0x=
80b0aa0,
cmd=3D0x0)
at command.c:1963
#3 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
command.c:2001
#4 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
#5 0x08072c82 in vty_read_config (config_file=3D0x0, config_current_dir=3D=
0x8095180
"mplsd.conf",
config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:2266
#6 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
(gdb) b interface
Breakpoint 4 at 0x8079043: file if.c, line 422.
(gdb) c
Continuing.
Breakpoint 4, interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, arg=
v=3D0xbffff898)
at if.c:422
422 ifp =3D if_lookup_by_name (argv[0]);
(gdb) p *agrv[0]
No symbol "agrv" in current context.
(gdb) p *agrgv[0]
No symbol "agrgv" in current context.
(gdb) p *argv[0]
$10 =3D 101 'e'
(gdb) n
Breakpoint 3, if_lookup_by_name (name=3D0x80b0de0 "eth1") at if.c:146
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) p *ifp
$11 =3D {name =3D "lo", '\0' <repeats 18 times>, ifindex =3D 0, status =3D=
0 '\0', flags
=3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1318,
info =3D 0x80b1330,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) p *ifp
$12 =3D {name =3D "eth0", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1418,
info =3D 0x80b1430,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
152 return NULL;
(gdb) n
interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff898=
) at if.c:424
424 if (ifp =3D=3D NULL)
(gdb) n
426 ifp =3D if_create ();
(gdb) n
Breakpoint 1, if_new () at if.c:57
57 return ifp;
(gdb) n
warning: Cannot insert breakpoint 0:
Cannot access memory at address 0x0
(gdb) n
67 listnode_add (iflist, ifp);
(gdb) n
68 ifp->connected =3D list_new ();
(gdb) p *ifp
$13 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '\=
0', flags =3D 0,
metric =3D 0, mtu =3D 0,
hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0, =
bandwidth =3D
0, desc =3D 0x0,
distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x0, info =
=3D 0x0, stats
=3D {rx_packets =3D 0,
tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, rx_errors =3D 0, tx=
_errors =3D 0,
rx_dropped =3D 0,
tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed =3D 0, tx_compres=
sed =3D 0,
collisions =3D 0,
rx_length_errors =3D 0, rx_over_errors =3D 0, rx_crc_errors =3D 0, rx=
_frame_errors
=3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
69 ifp->connected->del =3D (void (*) (void *)) connected_free;
(gdb) n
71 if (if_master.if_new_hook)
(gdb) n
72 (*if_master.if_new_hook) (ifp);
(gdb) n
74 return ifp;
(gdb) p *ifp
$14 =3D {name =3D '\0' <repeats 20 times>, ifindex =3D 0, status =3D 0 '\=
0', flags =3D 0,
metric =3D 0, mtu =3D 0,
hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_len =3D 0, =
bandwidth =3D
0, desc =3D 0x0,
distribute_in =3D 0x0, distribute_out =3D 0x0, connected =3D 0x80b1518,=
info =3D
0x80b1530, stats =3D {
rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes =3D 0, r=
x_errors =3D 0,
tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff898=
) at if.c:427
427 strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
(gdb) n
429 vty->index =3D ifp;
(gdb) p *ifp
$15 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) p *ifp
$16 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) bt
#0 interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbfff=
f898) at
if.c:429
#1 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D0x=
80b0aa0,
cmd=3D0x0)
at command.c:1963
#2 0x08075976 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
command.c:2001
#3 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
#4 0x08072c82 in vty_read_config (config_file=3D0x0, config_current_dir=3D=
0x8095180
"mplsd.conf",
config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:2266
#5 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
(gdb) n
430 vty->node =3D INTERFACE_NODE;
(gdb) n
432 return CMD_SUCCESS;
(gdb) p *ifp
$17 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
0x080758fc in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D0x80b0=
aa0,
cmd=3D0x0) at command.c:1960
1960 return CMD_SUCCESS_DAEMON;
(gdb) c
Continuing.
Breakpoint 2, do_mpls_labelspace (mi=3D0x80b1530) at impl_mpls.c:51
51 if (!mi || !mi->ifp->ifindex) {
(gdb) c
Continuing.
ldp_if_new:
ENTER: ldp_cfg_if_set
Breakpoint 3, if_lookup_by_name (name=3D0xbffff7a8 "eth1") at if.c:146
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) bt
#0 if_lookup_by_name (name=3D0xbffff7a8 "eth1") at if.c:146
#1 0x08049bf8 in ldp_ifmgr_open_if (ifmgr_handle=3D0x0, name=3D0x80b1640=
"eth1") at
impl_ifmgr.c:54
#2 0x08054dc1 in ldp_cfg_if_set (handle=3D0x80b1020, i=3D0x80b15dc, flag=
=3D3) at
ldp_cfg.c:790
#3 0x0804f518 in ldp_interface_create (mi=3D0x80b1530) at ldp_interface.=
c:40
#4 0x0804def4 in ldp_intf (self=3D0x8095960, vty=3D0x80b0aa0, argc=3D0,
argv=3D0xbffff898) at ldp_vty.c:1049
#5 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D0x=
80b0aa0,
cmd=3D0x0)
at command.c:1963
#6 0x08075936 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
command.c:1981
#7 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
#8 0x08072c82 in vty_read_config (config_file=3D0x0, config_current_dir=3D=
0x8095180
"mplsd.conf",
config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:2266
#9 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) p *ifp
$18 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
150 return ifp;
(gdb) n
0x08078999 152 return NULL;
(gdb) list -
142 {
143 listnode node;
144 struct interface *ifp;
145
146 for (node =3D listhead (iflist); node; nextnode (node))
147 {
148 ifp =3D getdata (node);
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
150 return ifp;
151 }
(gdb) p
$19 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
ldp_ifmgr_open_if (ifmgr_handle=3D0x0, name=3D0x80b1640 "eth1") at impl_i=
fmgr.c:56
56 return ifh;
(gdb) list -
46 }
47
48 ldp_if_handle ldp_ifmgr_open_if(ldp_ifmgr_handle ifmgr_handle, const c=
har
*name)
49 {
50 ldp_if_handle ifh;
51 char name2[IFNAMSIZ + 1];
52 strncpy(name2,name,IFNAMSIZ);
53
54 ifh =3D if_lookup_by_name(name2);
55
(gdb) p *ifh
$20 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
ldp_cfg_if_set (handle=3D0x80b1020, i=3D0x80b15dc, flag=3D3) at ldp_cfg.c=
:791
791 }
(gdb) list -
781 LDP_ENTER(global->user_data, "ldp_cfg_if_set");
782
783 ldp_lock_get(global->global_lock); /* LOCK */
784
785 if (flag & LDP_CFG_ADD) {
786 if ((iff =3D ldp_if_create()) =3D=3D NULL) {
787 goto ldp_cfg_if_set_end;
788 }
789 if (ldp_if_handle_verify(global->ifmgr_handle, i->handle) =3D=3D =
LDP_FALSE)
{
790 i->handle =3D ldp_ifmgr_open_if(global->ifmgr_handle, i->name);
(gdb) list
791 }
792 iff->handle =3D i->handle;
793 i->index =3D iff->index;
794 strncpy(iff->name, i->name, LDP_MAX_IF_NAME);
795 _ldp_global_add_if(global, iff);
796 } else {
797 ldp_global_find_if_index(global, i->index, &iff);
798 }
799
800 if ((iff =3D=3D NULL) ||
(gdb) bt
#0 ldp_cfg_if_set (handle=3D0x80b1020, i=3D0x80b15dc, flag=3D3) at ldp_c=
fg.c:791
#1 0x0804f518 in ldp_interface_create (mi=3D0x80b1530) at ldp_interface.=
c:40
#2 0x0804def4 in ldp_intf (self=3D0x8095960, vty=3D0x80b0aa0, argc=3D0,
argv=3D0xbffff898) at ldp_vty.c:1049
#3 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D0x=
80b0aa0,
cmd=3D0x0)
at command.c:1963
#4 0x08075936 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
command.c:1981
#5 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
#6 0x08072c82 in vty_read_config (config_file=3D0x0, config_current_dir=3D=
0x8095180
"mplsd.conf",
config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:2266
#7 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
(gdb) p *i->handle
$21 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
792 iff->handle =3D i->handle;
(gdb) n
793 i->index =3D iff->index;
(gdb) n
794 strncpy(iff->name, i->name, LDP_MAX_IF_NAME);
(gdb) n
795 _ldp_global_add_if(global, iff);
(gdb) n
796 } else {
(gdb) p *i->handle
$22 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) p *iff
$23 =3D {_refcnt =3D 1, _global =3D {lle_next =3D 0x80b1070, lle_prev =3D=
0x80b1070},
hello =3D 0x0,
entity =3D 0x0, hellotime_send_timer =3D 0x0, hellotime_send_timer_dura=
tion =3D 0,
label_space =3D -1,
handle =3D 0x80b1448, index =3D 1, message =3D 0x80b2708, buffer =3D 0x=
80b16e8,
local_source_address =3D {
protocol =3D 0, u =3D {ipv6 =3D '\0' <repeats 15 times>, ipv4 =3D 0}}=
, dest =3D
{_refcnt =3D 0, addr =3D {
protocol =3D 2, u =3D {ipv6 =3D "\002\0\0t", '\0' <s> .......
if_handle =3D 0x0}, name =3D "eth1", '\0' <repeats 11 times>, oper_st=
ate =3D
LDP_DOWN, entity_index =3D 0}
(gdb) n
798 }
(gdb) n
800 if ((iff =3D=3D NULL) ||
(gdb) n
804 if (flag & LDP_CFG_DEL) {
(gdb) n
814 if (flag & LDP_IF_CFG_INDEX) {
(gdb) n
817 if (flag & LDP_IF_CFG_LABEL_SPACE) {
(gdb) p flag
$24 =3D 3
(gdb) n
818 iff->label_space =3D i->label_space;
(gdb) n
820 global->configuration_sequence_number++;
(gdb) n
822 retval =3D LDP_SUCCESS;
(gdb) p *i
$25 =3D {_refcnt =3D 0, _global =3D {lle_next =3D 0x0, lle_prev =3D 0x0},=
hello =3D 0x0,
entity =3D 0x0,
hellotime_send_timer =3D 0x0, hellotime_send_timer_duration =3D 0, labe=
l_space =3D
0, handle =3D 0x80b1448,
index =3D 1, message =3D 0x0, buffer =3D 0x0, local_source_address =3D =
{protocol =3D 0,
u =3D {
ipv6 =3D '\0' <repeats 15 times>, ipv4 =3D 0}}, dest =3D {_refcnt =3D=
0, addr =3D
{protocol =3D 0, u =3D {
ipv6 =3D '\0' <repeats 15 times>, ipv4 =3D 0}}, port =3D 0, if_ha=
ndle =3D 0x0},
name =3D "eth1", '\0' <repeats 11 times>, oper_state =3D 0, entity_inde=
x =3D 0}
(gdb) n
825 ldp_lock_release(global->global_lock); /* UNLOCK */
(gdb) n
827 LDP_EXIT(global->user_data, "ldp_cfg_if_set");
(gdb) n
EXIT: ldp_cfg_if_set
829 return retval;
(gdb) n
ldp_interface_create (mi=3D0x80b1530) at ldp_interface.c:42
42 mi->ldp->entity.sub_index =3D mi->ldp->iff.index;
(gdb) list -
32 void ldp_interface_create(struct mpls_interface *mi) {
33 struct ldp *ldp =3D mi->mpls->ldp;
34
35 mi->ldp->create_on_hold =3D LDP_FALSE;
36
37 strncpy(mi->ldp->iff.name,mi->ifp->name,IFNAMSIZ);
38 mi->ldp->iff.label_space =3D mi->labelspace;
39
40 ldp_cfg_if_set(ldp->h, &mi->ldp->iff, LDP_CFG_ADD |
LDP_IF_CFG_LABEL_SPACE);
41
(gdb) n
43 mi->ldp->entity.entity_type =3D LDP_DIRECT;
(gdb) n
44 mi->ldp->entity.admin_state =3D LDP_DOWN;
(gdb) n
46 ldp_cfg_entity_set(ldp->h, &mi->ldp->entity,
(gdb) p *ldp->h
$26 =3D {outlabel =3D {llh_first =3D 0x80b1020, llh_last =3D 0x80b1020}, =
resource =3D
{llh_first =3D 0x80b1028,
llh_last =3D 0x80b1028}, hop_list =3D {llh_first =3D 0x80b1030, llh_l=
ast =3D
0x80b1030}, inlabel =3D {
llh_first =3D 0x80b1038, llh_last =3D 0x80b1038}, session =3D {llh_fi=
rst =3D
0x80b1040,
llh_last =3D 0x80b1040}, tunnel =3D {llh_first =3D 0x80b1048, llh_las=
t =3D
0x80b1048}, entity =3D {
llh_first =3D 0x80b1050, llh_last =3D 0x80b1050}, peer =3D {llh_first=
=3D 0x80b1058,
llh_last =3D 0x80b1058}, attr =3D {llh_first =3D 0x80b1060, llh_last =
=3D 0x80b1060},
adj =3D {
llh_first =3D 0x80b1068, llh_last =3D 0x80b1068}, iff =3D {llh_first =
=3D 0x80b1668,
llh_last =3D 0x80b1668}, global_lock =3D 0x80b0e48, user_data =3D 0x8=
0b1008,
addr_tree =3D 0x80b1118,
tree =3D 0x80b1128, nh_tree =3D 0x0, hello_socket =3D 0x80b1138, listen_s=
ocket =3D
0x80b11c0,
timer_handle =3D 0, socket_handle =3D 0, fib_handle =3D 0x80a68f0, ifmg=
r_handle =3D
0x0, mpls_handle =3D 10,
configuration_sequence_number =3D 3, message_identifier =3D 1, lsr_iden=
tifier =3D
{protocol =3D 2, u =3D {
ipv6 =3D "\0\0\0\0=A3\232\r@=A0\n\v\b\230=F8=FF=BF", ipv4 =3D 0}}, =
send_address_messages
=3D LDP_TRUE,
send_lsrid_mapping =3D LDP_TRUE, lsp_control_mode =3D LDP_CONTROL_ORDER=
ED,
label_retention_mode =3D LDP_RETENTION_LIBERAL, lsp_repair_mode =3D
LDP_REPAIR_GLOBAL,
propagate_release =3D LDP_TRUE, label_merge =3D LDP_TRUE, loop_detectio=
n_mode =3D
LDP_LOOP_NONE,
ttl_less_domain =3D LDP_FALSE, local_tcp_port =3D 646, local_udp_port =3D=
646,
backoff_step =3D 15,
no_route_to_peer_time =3D 10, transport_address =3D {protocol =3D 0, u =
=3D {ipv6 =3D
'\0' <repeats 15 times>,
ipv4 =3D 0}}, keepalive_timer =3D 45, keepalive_interval =3D 15, he=
llotime_timer
=3D 15,
hellotime_interval =3D 5, admin_state =3D LDP_ENABLE}
(gdb) list -
36
37 strncpy(mi->ldp->iff.name,mi->ifp->name,IFNAMSIZ);
38 mi->ldp->iff.label_space =3D mi->labelspace;
39
40 ldp_cfg_if_set(ldp->h, &mi->ldp->iff, LDP_CFG_ADD |
LDP_IF_CFG_LABEL_SPACE);
41
42 mi->ldp->entity.sub_index =3D mi->ldp->iff.index;
43 mi->ldp->entity.entity_type =3D LDP_DIRECT;
44 mi->ldp->entity.admin_state =3D LDP_DOWN;
45
(gdb) list
46 ldp_cfg_entity_set(ldp->h, &mi->ldp->entity,
47 LDP_CFG_ADD | LDP_ENTITY_CFG_SUB_INDEX | LDP_ENTITY_CFG_ADMIN_STATE);
48
49 ldp_cfg_entity_get(ldp->h, &mi->ldp->entity, 0xFFFFFFFF);
50 ldp_cfg_if_get(ldp->h, &mi->ldp->iff, 0xFFFFFFFF);
51
52 ldp_interface_admin_state_finish(mi);
53 }
54
55 void ldp_interface_delete(struct mpls_interface *mi) {
(gdb) p *mi->ldp->entity
Structure has no component named operator*.
(gdb) p mi->ldp->entity
$27 =3D {_refcnt =3D 0, _global =3D {lle_next =3D 0x0, lle_prev =3D 0x0},=
session_root =3D
{llh_first =3D 0x0,
llh_last =3D 0x0}, adj_root =3D {llh_first =3D 0x0, llh_last =3D 0x0}=
, entity_type =3D
LDP_DIRECT, p =3D {
peer =3D 0x0, iff =3D 0x0}, state =3D LDP_STATE_NONE, inherit_flag =3D=
962,
require_hop_count =3D LDP_FALSE, sub_index =3D 1, index =3D 0, transpor=
t_address =3D
{protocol =3D 0, u =3D {
ipv6 =3D '\0' <repeats 15 times>, ipv4 =3D 0}}, protocol_version =3D=
1 '\001',
remote_tcp_port =3D 646,
remote_udp_port =3D 646, max_pdu =3D 4096, keepalive_timer =3D 45,
keepalive_interval =3D 15,
hellotime_timer =3D 15, hellotime_interval =3D 5, session_setup_count =3D=
0,
session_backoff_timer =3D 10,
label_distribution_mode =3D LDP_DISTRIBUTION_UNSOLICITED, path_vector_l=
imit =3D 10
'\n',
hop_count_limit =3D 30 '\036', label_request_count =3D 0 '\0', label_re=
quest_timer
=3D 30,
loop_detection_mode =3D LDP_LOOP_NONE, keepalive_send_timer =3D 0x0,
keepalive_recv_timer =3D 0x0,
admin_state =3D LDP_DISABLE, remote_in_ttl_less_domain =3D LDP_FALSE,
request_retry =3D LDP_TRUE,
mesg_tx =3D 0, mesg_rx =3D 0, adj_count =3D 0}
(gdb) p *mi
$28 =3D {mpls =3D 0x80b0e20, ifp =3D 0x80b1448, labelspace =3D 0, connect=
ed =3D 0x0, ldp =3D
0x80b1548}
(gdb) p *mi->ifp
$29 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
ENTER: ldp_cfg_entity_set
PRT: ldp_cfg_entity_set: entity not ready
EXIT: ldp_cfg_entity_set
49 ldp_cfg_entity_get(ldp->h, &mi->ldp->entity, 0xFFFFFFFF);
(gdb) p *mi->ifp
$30 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
ENTER: ldp_cfg_entity_get
EXIT: ldp_cfg_entity_get
50 ldp_cfg_if_get(ldp->h, &mi->ldp->iff, 0xFFFFFFFF);
(gdb) n
ENTER: ldp_cfg_if_get
EXIT: ldp_cfg_if_get
52 ldp_interface_admin_state_finish(mi);
(gdb) p *mi->ifp
$31 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
ldp_intf (self=3D0x8095960, vty=3D0x80b0aa0, argc=3D0, argv=3D0xbffff898)=
at
ldp_vty.c:1050
1050 } else {
(gdb) bt
#0 ldp_intf (self=3D0x8095960, vty=3D0x80b0aa0, argc=3D0, argv=3D0xbffff=
898) at
ldp_vty.c:1050
#1 0x080758cd in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D0x=
80b0aa0,
cmd=3D0x0)
at command.c:1963
#2 0x08075936 in config_from_file (vty=3D0x80b0aa0, fp=3D0x80b0930) at
command.c:1981
#3 0x08072828 in vty_read_file (confp=3D0x80b0930) at vty.c:2079
#4 0x08072c82 in vty_read_config (config_file=3D0x0, config_current_dir=3D=
0x8095180
"mplsd.conf",
config_default_dir=3D0x809518b "/etc/zebra/mplsd.conf") at vty.c:2266
#5 0x0804c1ba in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:206
(gdb) list -
1040 /* user is trying to create a new LDP interface */
1041 do_mpls_labelspace(mi);
1042 mi->ldp =3D ldp_if_new(mi);
1043 }
1044
1045 /* if the global LDP has been created, go ahead and tell LDP about=
it
1046 * otherwise just mark the interface as "on hold"
1047 */
1048 if (mpls->ldp) {
1049 ldp_interface_create(mi);
(gdb) list
1050 } else {
1051 mi->ldp->create_on_hold =3D LDP_TRUE;
1052 }
1053
1054 vty->node =3D MPLS_LDP_IF_NODE;
1055
1056 return CMD_SUCCESS;
1057 }
1058
1059 DEFUN(no_ldp_intf,
(gdb) n
1054 vty->node =3D MPLS_LDP_IF_NODE;
(gdb) n
1056 return CMD_SUCCESS;
(gdb) p *mi->ifp
$32 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
0x080758fc in cmd_execute_command_strict (vline=3D0x80b0e10, vty=3D0x80b0=
aa0,
cmd=3D0x0) at command.c:1960
1960 return CMD_SUCCESS_DAEMON;
(gdb) c
Continuing.
Breakpoint 4, interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, arg=
v=3D0xbffff898)
at if.c:422
422 ifp =3D if_lookup_by_name (argv[0]);
(gdb) n
Breakpoint 3, if_lookup_by_name (name=3D0x80b0de0 "dummy0") at if.c:146
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
152 return NULL;
(gdb) n
interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff898=
) at if.c:424
424 if (ifp =3D=3D NULL)
(gdb) n
426 ifp =3D if_create ();
(gdb) n
Breakpoint 1, if_new () at if.c:57
57 return ifp;
(gdb) n
warning: Cannot insert breakpoint 0:
Cannot access memory at address 0x0
(gdb) n
67 listnode_add (iflist, ifp);
(gdb) n
68 ifp->connected =3D list_new ();
(gdb) n
69 ifp->connected->del =3D (void (*) (void *)) connected_free;
(gdb) n
71 if (if_master.if_new_hook)
(gdb) n
72 (*if_master.if_new_hook) (ifp);
(gdb) n
74 return ifp;
(gdb) n
interface (self=3D0x8096680, vty=3D0x80b0aa0, argc=3D1, argv=3D0xbffff898=
) at if.c:427
427 strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
(gdb) n
429 vty->index =3D ifp;
(gdb) p *argv[0]
$33 =3D 100 'd'
(gdb) p argv[0]
$34 =3D 0x80b0de0 "dummy0"
(gdb) n
430 vty->node =3D INTERFACE_NODE;
(gdb) n
432 return CMD_SUCCESS;
(gdb) n
0x080758fc in cmd_execute_command_strict (vline=3D0x80b0db0, vty=3D0x80b0=
aa0,
cmd=3D0x0) at command.c:1960
1960 return CMD_SUCCESS_DAEMON;
(gdb) c
Continuing.
2002/11/08 10:25:35 MPLS: MPLSd (0.93b) starts
Breakpoint 3, if_lookup_by_name (name=3D0xbffff8a8 "lo") at if.c:146
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) c
Continuing.
2002/11/08 10:25:36 MPLS: interface add lo index 1 flags 73 metric 1 mtu =
16436
2002/11/08 10:25:36 MPLS: address add 127.0.0.1 to interface lo
ENTER: _ldp_global_ifmgr_callback
EXIT: _ldp_global_ifmgr_callback
Breakpoint 3, if_lookup_by_name (name=3D0xbffff8a8 "eth0") at if.c:146
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) bt
#0 if_lookup_by_name (name=3D0xbffff8a8 "eth0") at if.c:146
#1 0x0807de30 in zebra_interface_add_read (s=3D0x80ae870) at zclient.c:5=
91
#2 0x0804b384 in mpls_interface_add (command=3D1, zclient=3D0x80ae818, l=
ength=3D50)
at mpls_zebra.c:43
#3 0x0807e2a2 in zclient_read (thread=3D0xbffff9e4) at zclient.c:867
#4 0x080787a2 in thread_call (thread=3D0xbffff9e4) at thread.c:647
#5 0x0804c229 in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:224
(gdb) n
148 ifp =3D getdata (node);
(gdb) c
Continuing.
2002/11/08 10:26:03 MPLS: interface add eth0 index 2 flags 4163 metric 1 =
mtu
1500
2002/11/08 10:26:03 MPLS: address add 192.10.13.163 to interface eth0
ENTER: _ldp_global_ifmgr_callback
EXIT: _ldp_global_ifmgr_callback
Breakpoint 3, if_lookup_by_name (name=3D0xbffff8a8 "dummy0") at if.c:146
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) c
Continuing.
2002/11/08 10:26:07 MPLS: interface add dummy0 index 3 flags 195 metric 1=
mtu
1500
2002/11/08 10:26:07 MPLS: address add 10.10.9.100 to interface dummy0
ENTER: _ldp_global_ifmgr_callback
EXIT: _ldp_global_ifmgr_callback
Breakpoint 3, if_lookup_by_name (name=3D0xbffff8a8 "eth1") at if.c:146
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) n
146 for (node =3D listhead (iflist); node; nextnode (node))
(gdb) n
148 ifp =3D getdata (node);
(gdb) bt
#0 if_lookup_by_name (name=3D0xbffff8a8 "eth1") at if.c:148
#1 0x0807de30 in zebra_interface_add_read (s=3D0x80ae870) at zclient.c:5=
91
#2 0x0804b384 in mpls_interface_add (command=3D1, zclient=3D0x80ae818, l=
ength=3D50)
at mpls_zebra.c:43
#3 0x0807e2a2 in zclient_read (thread=3D0xbffff9e4) at zclient.c:867
#4 0x080787a2 in thread_call (thread=3D0xbffff9e4) at thread.c:647
#5 0x0804c229 in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:224
(gdb) n
149 if (strncmp (name, ifp->name, sizeof ifp->name) =3D=3D 0)
(gdb) n
150 return ifp;
(gdb) n
0x08078999 152 return NULL;
(gdb) n
zebra_interface_add_read (s=3D0x80ae870) at zclient.c:594
594 if (! ifp)
(gdb) list -
584 struct interface *ifp;
585 u_char ifname_tmp[INTERFACE_NAMSIZ];
586
587 /* Read interface name. */
588 stream_get (ifname_tmp, s, INTERFACE_NAMSIZ);
589
590 /* Lookup this by interface name. */
591 ifp =3D if_lookup_by_name (ifname_tmp);
592
593 /* If such interface does not exist, make new one. */
(gdb) n
601 ifp->ifindex =3D stream_getl (s);
(gdb) p *ifp
$35 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 0, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) n
604 ifp->flags =3D stream_getl (s);
(gdb) p *ifp
$36 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 4, status =
=3D 0 '\0',
flags =3D 0, metric =3D 0,
mtu =3D 0, hw_type =3D 0, hw_addr =3D '\0' <repeats 19 times>, hw_addr_=
len =3D 0,
bandwidth =3D 0,
desc =3D 0x0, distribute_in =3D 0x0, distribute_out =3D 0x0, connected =
=3D 0x80b1518,
info =3D 0x80b1530,
stats =3D {rx_packets =3D 0, tx_packets =3D 0, rx_bytes =3D 0, tx_bytes=
=3D 0, rx_errors
=3D 0, tx_errors =3D 0,
rx_dropped =3D 0, tx_dropped =3D 0, rx_multicast =3D 0, rx_compressed=
=3D 0,
tx_compressed =3D 0,
collisions =3D 0, rx_length_errors =3D 0, rx_over_errors =3D 0, rx_cr=
c_errors =3D 0,
rx_frame_errors =3D 0,
rx_fifo_errors =3D 0, rx_missed_errors =3D 0, tx_aborted_errors =3D 0=
,
tx_carrier_errors =3D 0,
tx_fifo_errors =3D 0, tx_heartbeat_errors =3D 0, tx_window_errors =3D=
0}}
(gdb) bt
#0 zebra_interface_add_read (s=3D0x80ae870) at zclient.c:604
#1 0x0804b384 in mpls_interface_add (command=3D1, zclient=3D0x80ae818, l=
ength=3D50)
at mpls_zebra.c:43
#2 0x0807e2a2 in zclient_read (thread=3D0xbffff9e4) at zclient.c:867
#3 0x080787a2 in thread_call (thread=3D0xbffff9e4) at thread.c:647
#4 0x0804c229 in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:224
(gdb) p *s
$37 =3D {next =3D 0x0, data =3D 0x80ae890 "", putp =3D 53, getp =3D 27, e=
ndp =3D 53, size =3D
4096}
(gdb) n
605 ifp->metric =3D stream_getl (s);
(gdb) n
606 ifp->mtu =3D stream_getl (s);
(gdb) n
607 ifp->bandwidth =3D stream_getl (s);
(gdb) n
611 ifp->hw_addr_len =3D stream_getl (s);
(gdb) n
612 if (ifp->hw_addr_len)
(gdb) n
613 stream_get (ifp->hw_addr, s, ifp->hw_addr_len);
(gdb) n
616 return ifp;
(gdb) p *ifp
$38 =3D {name =3D "eth1", '\0' <repeats 16 times>, ifindex =3D 4, status =
=3D 0 '\0',
flags =3D 4099,
metric =3D 1, mtu =3D 1500, hw_type =3D 0, hw_addr =3D "\0\003Gq=D5.", =
'\0' <repeats 13
times>,
hw_addr_len =3D 6, bandwidth =3D 0, desc =3D 0x0, distribute_in =3D 0x0=
,
distribute_out =3D 0x0,
connected =3D 0x80b1518, info =3D 0x80b1530, stats =3D {rx_packets =3D =
0, tx_packets =3D
0, rx_bytes =3D 0,
tx_bytes =3D 0, rx_errors =3D 0, tx_errors =3D 0, rx_dropped =3D 0, t=
x_dropped =3D 0,
rx_multicast =3D 0,
rx_compressed =3D 0, tx_compressed =3D 0, collisions =3D 0, rx_length=
_errors =3D 0,
rx_over_errors =3D 0,
rx_crc_errors =3D 0, rx_frame_errors =3D 0, rx_fifo_errors =3D 0, rx_=
missed_errors
=3D 0,
tx_aborted_errors =3D 0, tx_carrier_errors =3D 0, tx_fifo_errors =3D =
0,
tx_heartbeat_errors =3D 0,
tx_window_errors =3D 0}}
(gdb) bt
#0 zebra_interface_add_read (s=3D0x80ae870) at zclient.c:616
#1 0x0804b384 in mpls_interface_add (command=3D1, zclient=3D0x80ae818, l=
ength=3D50)
at mpls_zebra.c:43
#2 0x0807e2a2 in zclient_read (thread=3D0xbffff9e4) at zclient.c:867
#3 0x080787a2 in thread_call (thread=3D0xbffff9e4) at thread.c:647
#4 0x0804c229 in main (argc=3D1, argv=3D0xbffffab4) at mpls_main.c:224
(gdb) quit
------------------------------------ end of gdb
session -------------------------------------
|
|
From: James R. L. <jl...@ne...> - 2002-11-08 03:44:44
|
If you have compiled it with netlink the routes should already have the label binding done. To see if LDP has exchanged labels for routes, check the output of 'show ip route' from the zebra daemon. Then check the output of 'ip route show' (this is the ip from a MPLS patched iproute2). If the output from zebra doesn't show LSP info, then check your OSPF and LDP config. If the output from 'ip' doesn show LSP info, then make sure you've compiled zebra with netlink support. On Thu, Nov 07, 2002 at 04:54:34PM -0200, Pl=EDnio de Paula wrote: > Hello People, >=20 > I have successfully installed LDP + Zebra and they are now exchaning ro= utes with labels... > What do I need to do the real labelling of packets in the ingress node? > Does MPLS-patched iproute2 label the packets in the ingress node with z= ebra+ldp automatically? >=20 > Pl=EDnio de Paula > UNICAMP/Brazil >=20 >=20 >=20 > ------------------------------------------------------- > This sf.net email is sponsored by: See the NEW Palm=20 > Tungsten T handheld. Power & Color in a compact size! > http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general --=20 James R. Leu |
|
From: <pp...@cp...> - 2002-11-07 18:54:01
|
Hello People, I have successfully installed LDP + Zebra and they are now exchaning = routes with labels... What do I need to do the real labelling of packets in the ingress node? Does MPLS-patched iproute2 label the packets in the ingress node with = zebra+ldp automatically? Pl=EDnio de Paula UNICAMP/Brazil |
|
From: James R. L. <jl...@ne...> - 2002-11-07 04:34:13
|
On Wed, Nov 06, 2002 at 08:25:27PM -0800, nitin panjwani wrote: > Hi James, > > I remember that some time back you mentioned that > mpls-patch works with user-mode-linux. Does it > support DiffServ features of MPLS and zebra. Is there > any limitation of mpls in this. I use user-mode-linux for all of my testing. So far I have not found any limitations. To be more specific: most of the networking options supported in the standard linux kernel are supported in uml, this includes all of the QoS and scheduling options. > Thanks, > Nitin > > Note: I posted this message yesterday, but it seems > that it rebounded back so I am posting agian. > > > > > __________________________________________________ > Do you Yahoo!? > U2 on LAUNCH - Exclusive greatest hits videos > http://launch.yahoo.com/u2 > > > ------------------------------------------------------- > This sf.net email is sponsored by: See the NEW Palm > Tungsten T handheld. Power & Color in a compact size! > http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu |
|
From: nitin p. <tac...@ya...> - 2002-11-07 04:25:27
|
Hi James,
I remember that some time back you mentioned that
mpls-patch works with user-mode-linux. Does it
support DiffServ features of MPLS and zebra. Is there
any limitation of mpls in this.
Thanks,
Nitin
Note: I posted this message yesterday, but it seems
that it rebounded back so I am posting agian.
__________________________________________________
Do you Yahoo!?
U2 on LAUNCH - Exclusive greatest hits videos
http://launch.yahoo.com/u2
|