RE: [mpls-linux-general] MPLS and ATM
Status: Beta
Brought to you by:
jleu
|
From: Jonathan E. <je...@no...> - 2001-04-05 21:50:30
|
Hi Jim,
Okay. I was taking your example a bit literally. I'm now using atm0, not
atm1, since:
root@onc4:~> cat /proc/net/atm/devices
Itf Type ESI/"MAC"addr AAL(TX,err,RX,err,drop) ...
0 ia 00007794577c 0 ( 0 0 0 0 0 ) 5 ( 273 0 93 0 0 )
shows the card is at index 0. Okay. On the target, I can create a new
labelspace and inbound label (I saved the 0.990 vesion of mplsadm as
mplsadm.new to avoid conflict with the previous version of the tool in a
shared tools directory):
root@onc4:~> mplsadm.new -L atm0:3
root@onc4:~> mplsadm.new -A -I atm:0/33:3
root@onc4:~> cat /proc/net/mpls_labelspace
lo 0
teql0 0
atm0 3
root@onc4:~> cat /proc/net/mpls_in
80210003 atm 0/33 3 POP DLV
debug output looks like:
mpls_add_in_label: enter
mpls_info_default_in_instruction: enter
mpls_info_default_in_instruction: exit
mpls_atm_create_vcc: enter(0,0,33,1)
mpls_atm_create_vcc: vci 33 <-> 1024 vpi 0 <-> 1
mpls_atm_create_vcc: create_vcc
mpls_atm_create_vcc: setting up vcc
atm_connect (TX: cl 0,bw 0-0,sdu 65535; RX: cl 1,bw 0-0,sdu 65535,AAL 5)
mpls_atm_create_vcc: exit
mpls_add_in_label: succeeded creating vcc
mpls_add_in_label: exit
So far, so good. Now, on to the source. First, lets create the outbound
label:
root@onc2:~> mplsadm.new -A -O atm:0/33:atm0
Segmentation fault
Oops! The log showed this right at the top of the oops output:
Apr 5 16:06:37 onc2 kernel: IA: SDU size over the configured SDU size
10240
IA is the Interphase adapter.
The processed oops output is:
ksymoops 0.7c on i686 2.4.3. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.3/ (default)
-m /usr/src/linux/System.map (default)
Warning: You did not tell me where to find symbol information. I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc. ksymoops -h explains the options.
CPU: 0
EIP: 0010:[<d083daa3>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010046
eax: 000493e0 ebx: ced80044 ecx: 00000000 edx: 00000000
esi: ced80000 edi: ced51260 ebp: ced3e000 esp: cedc9c48
ds: 0018 es: 0018 ss: 0018
Process mplsadm.new (pid: 833, stackpage=cedc9000)
Stack: ffffffea ced3e000 cfa0a680 00000021 00035a18 00000286 ced51260
cedc9c64
cedc9c64 00000000 00000246 cedc9c74 cedc9c74 00000000 d083dca9
d083dce1
ced3e000 00000000 ced3e000 00000000 c01edd70 ced3e000 00000000
00000021
Call Trace: [<d083dca9>] [<d083dce1>] [<c01edd70>] [<c01eddd6>] [<c01ede9d>]
[<c01dfa36>] [<c01dcee7>]
[<c014f486>] [<c01dc599>] [<c019e269>] [<c01e0a2e>] [<c01e0436>]
[<c01e08b7>] [<c01e06d8>] [<c019508d>]
[<c01e06d8>] [<c0195cfc>] [<c01b16c8>] [<c01b17f0>] [<d083d0f5>]
[<c019a1cd>] [<c01964cb>] [<c0106daf>]
Code: f7 77 0c 89 c3 b8 01 00 00 00 85 db 0f 44 d8 80 7f 2c 00 74
>>EIP; d083daa3 <[iphase]ia_close+1b3/330> <=====
Trace; d083dca9 <[iphase]ia_open+89/d8>
Trace; d083dce1 <[iphase]ia_open+c1/d8>
Trace; c01edd70 <atm_do_connect_dev+14c/184>
Trace; c01eddd6 <atm_do_connect+2e/34>
Trace; c01ede9d <atm_connect_vcc+c1/120>
Trace; c01dfa36 <mpls_atm_create_vcc+1ca/244>
Trace; c01dcee7 <mpls_add_out_label+20b/4ac>
Trace; c014f486 <nfs_read_rpcsetup+3a/ec>
Trace; c01dc599 <mpls_rtm_newnhlfe+d/14>
Trace; c019e269 <rtnetlink_rcv+24d/38c>
Trace; c01e0a2e <netlink_data_ready+1a/60>
Trace; c01e0436 <netlink_unicast+296/2dc>
Trace; c01e08b7 <netlink_sendmsg+1df/1f0>
Trace; c01e06d8 <netlink_sendmsg+0/1f0>
Trace; c019508d <sock_sendmsg+81/a4>
Trace; c01e06d8 <netlink_sendmsg+0/1f0>
Trace; c0195cfc <sys_sendto+d0/f0>
Trace; c01b16c8 <ip_rcv+358/390>
Trace; c01b17f0 <ip_rcv_finish+0/210>
Trace; d083d0f5 <[iphase]ia_int+85/94>
Trace; c019a1cd <net_rx_action+125/240>
Trace; c01964cb <sys_socketcall+123/1dc>
Trace; c0106daf <system_call+33/38>
Code; d083daa3 <[iphase]ia_close+1b3/330>
00000000 <_EIP>:
Code; d083daa3 <[iphase]ia_close+1b3/330> <=====
0: f7 77 0c div 0xc(%edi),%eax <=====
Code; d083daa6 <[iphase]ia_close+1b6/330>
3: 89 c3 mov %eax,%ebx
Code; d083daa8 <[iphase]ia_close+1b8/330>
5: b8 01 00 00 00 mov $0x1,%eax
Code; d083daad <[iphase]ia_close+1bd/330>
a: 85 db test %ebx,%ebx
Code; d083daaf <[iphase]ia_close+1bf/330>
c: 0f 44 d8 cmove %eax,%ebx
Code; d083dab2 <[iphase]ia_close+1c2/330>
f: 80 7f 2c 00 cmpb $0x0,0x2c(%edi)
Code; d083dab6 <[iphase]ia_close+1c6/330>
13: 74 00 je 15 <_EIP+0x15> d083dab8
<[iphase]ia_close+1c8/330>
1 warning issued. Results may not be reliable.
Cheers!
Jon
> -----Original Message-----
> From: James R. Leu [mailto:jl...@mi...]
> Sent: Wednesday, April 04, 2001 8:27 PM
> To: Earle, Jonathan [CAR:1A31:EXCH]
> Cc: 'Linux MPLS List'
> Subject: Re: [mpls-linux-general] MPLS and ATM
>
>
> Hello,
>
> What is the atm index of your ATM card?
>
> cat /proc/net/atm/device
>
> It shows up as the Intf.
>
> When creating your atm interface (via atmarp -c) the index in the name
> needs to match that of the index from above.
>
> Example:
>
> If the atm card index (from /proc/net/atm/device) is 3
>
> atmarp -c atm3
>
> I know this is a kind of a ridiculous rule, but due to the nature of
> ATM for Linux it is a requirement. Someday I'll get a around
> to re-writing
> the way ATM interfaces are handled on Linux ...
>
> Let me know if this still doesn't help.
>
> Jim
>
> On Wed, Apr 04, 2001 at 05:51:21PM -0400, Jonathan Earle wrote:
> > Hi James,
> >
> > Setup is as follows:
> >
> > Interphase 5575 ATM NIC
> > Kernel 2.4.3
> > MPLS v0.990
> >
> > Basic IP connectivity between the two NICs works fine. I
> configure the NICs
> > thusly:
> >
> > master)
> > atmsigd -b -m network
> > atmarpd -b
> > sleep 2s
> >
> > if [ "$adapter" != "atm$anum" ]; then
> > atmarp -c atm$anum
> > fi
> >
> > ifconfig atm$anum 192.168.1.1 up
> > sleep 2s
> > atmarp -s 192.168.1.2 0.0.102
> > ;;
> > slave)
> > atmsigd -b
> > atmarpd -b
> > sleep 2s
> >
> > if [ "$adapter" != "atm$anum" ]; then
> > atmarp -c atm$anum
> > fi
> >
> > ifconfig atm$anum 192.168.1.2 up
> > sleep 2s
> > atmarp -s 192.168.1.1 0.0.102
> > ;;
> >
> > Using the examples in REAME.atm, I can create the labelspace:
> >
> > root@onc4:~> cat /proc/net/mpls_labelspace
> > lo 0
> > teql0 0
> > atm1 3
> >
> > But not IN labels:
> >
> > mpls_add_in_label: enter
> > mpls_info_default_in_instruction: enter
> > mpls_info_default_in_instruction: exit
> > mpls_atm_create_vcc: enter(1,0,33,1)
> > mpls_atm_create_vcc: adev == NULL
> > mpls_add_in_label: failed creating vcc
> > __mpls_del_in_label: enter
> > __mpls_del_in_label: exit
> > mpls_add_in_label: exit
> >
> > or OUT labels:
> >
> > mpls_add_out_label: enter
> > mpls_info_default_moi_instruction: enter
> > mpls_info_default_moi_instruction: exit
> > mpls_atm_create_vcc: enter(1,0,33,2)
> > mpls_atm_create_vcc: adev == NULL
> > mpls_add_out_label: failed to create VCC
> > __mpls_del_out_label: enter
> > __mpls_del_out_label: exit
> > mpls_add_out_label: exit
> >
> > Cheers!
> > Jon
> >
> > _______________________________________________
> > mpls-linux-general mailing list
> > mpl...@li...
> > http://lists.sourceforge.net/lists/listinfo/mpls-linux-general
>
> --
> James R. Leu
>
|