[Xorp-users] Xorp, pimsm and ethertap

Pavlin Radoslavov pavlin@icir.org
Fri, 24 Feb 2006 15:58:25 -0800


> Yes, the thing I am thinking about is not just up/down, but actually
> killing the process that creates the tap.
> Let me try it out, and see what happens:
> 
> bash # kill 24904
> bash # ifconfig taphush
> taphush: error fetching interface information: Device not found
> bash # ip link show taphush
> Device "taphush" does not exist.
> bash #
> 
> Nothing untoward appeared in the window that is running xorp_rtrmgr in.
> 
> However, xorp seems to be unaware that it's gone.
> # bin/xorpsh
> Welcome to XORP on torro
> root@torro> show interfaces
> taphush/taphush: Flags:<ENABLED,BROADCAST,MULTICAST> mtu 1500
>         physical index 12
>         ether 4a:12:38:a6:de:7c
> 
> Running commit causes this sort of thing:
> 
> [ 2006/02/24 23:23:08 INFO xorp_bgp BGP ] Sending: Notification
> Packet: Hold Timer Expired(4)
> [ 2006/02/24 23:23:08  ERROR xorp_bgp:25341 LIBCOMM +354 comm_sock.c
> comm_sock_bind4 ] Error binding socket (family = 2, my_addr =
> 10.0.0.122, my_port = 0): Cannot assign requested address
> 
> Which is fair enough.
> If I start the process back up...
> 
> # ./start-tap
> # ifconfig taphush
> taphush   Link encap:Ethernet  HWaddr 42:98:7F:BF:54:95
>           inet addr:10.0.0.122  Bcast:10.0.0.123  Mask:255.255.255.252
> 
> > show bgp peers detail
> Peer 1: local 10.0.0.122/179 remote 10.0.0.121/179
>   Peer ID: 10.0.0.1
>   Peer State: ESTABLISHED
>   Admin State: START
> 
> So it seems to pick it back up fairly painlessly.

Yes, so far in the implementation we didn't consider the case when
the interface disappears completely, hence "show interfaces" is
still displaying the deleted interface.
Please submit a bugzilla entry about the issue with the above
information, but please don't forget to include the content of your
"start-tap" script.

A possible work-around is for you to have a script to delete the tap
interface, and in that script the first thing to do is to use
xorpsh in non-interactive mode to delete the taphush interface from
the XORP config. E.g.,

#!/bin/sh

xorpsh <<!
configure
delete interfaces interface taphush
commit
!

stop-tap
...


See the XORP user manual for alternative ways of running xorpsh in
non-interactive mode.

Pavlin

P.S. I will leave the BGP-specific question to Mike :)