[patch] kernel protocol learn on FreeBSD 7

Eugene Perevyazko john at dnepro.net
Tue Nov 10 12:34:18 CET 2009


On Mon, Nov 09, 2009 at 07:10:17PM +0100, Ondrej Zajicek wrote:
> On Mon, Nov 09, 2009 at 07:57:01PM +0200, Eugene Perevyazko wrote:
> > Now I see that async alien routes are added, but not deleted.
> > They are deleted only on rescan.
> > Is sysdep/bsd/krt.c missing something related to async deleting of alien routes
> > or is the patch faulty in some way?
> 
> Hmm, i don't know. It is possible that async deletion event handling is not
> implemented in BSD code.
> 

I've traced the problem down to this condition in krt_read_rt() in sysdep/bsd/krt-sock.c:
  if (!(flags & RTF_UP))
  {
    DBG("Down.\n");
    return;
  }

Shouldn't it be !(flags & RTF_DONE) ?
Or maybe even check rtm.errno first?

To show the details I used next commands:
  # route add 10.0.1.0/24 192.168.200.2
  add net 10.0.1.0: gateway 192.168.200.2
  # route delete 10.0.1.0/24 192.168.200.2
  delete net 10.0.1.0: gateway 192.168.200.2
  # route delete 10.0.1.0/24 192.168.200.2
  route: writing to routing socket: No such process
  delete net 10.0.1.0: gateway 192.168.200.2: not in table
  # route add 10.0.1.0/24 192.168.200.2
  add net 10.0.1.0: gateway 192.168.200.2
  # route delete 10.0.1.0/24
  delete net 10.0.1.0
  # route delete 10.0.1.0/24
  route: writing to routing socket: No such process
  delete net 10.0.1.0: not in table

And here is what route monitor shows for them:
# route monitor

got message of size 132 on Tue Nov 10 13:21:18 2009
RTM_ADD: Add Route: len 132, pid: 25159, seq 1, errno 0, flags:<UP,GATEWAY,DONE,STATIC>
locks:  inits:
sockaddrs: <DST,GATEWAY,NETMASK>
 10.0.1.0 192.168.200.2 (0) 0 ffff ff

got message of size 132 on Tue Nov 10 13:21:30 2009
RTM_DELETE: Delete Route: len 132, pid: 25160, seq 1, errno 0, flags:<GATEWAY,DONE,STATIC>
locks:  inits:
sockaddrs: <DST,GATEWAY,NETMASK>
 10.0.1.0 192.168.200.2 (255) ffff ffff ff

got message of size 132 on Tue Nov 10 13:21:30 2009
RTM_DELETE: Delete Route: len 132, pid: 25161, seq 1, errno 3, flags:<UP,GATEWAY,STATIC>
locks:  inits:
sockaddrs: <DST,GATEWAY,NETMASK>
 10.0.1.0 192.168.200.2 (0) 0 ffff ff

got message of size 132 on Tue Nov 10 13:21:35 2009
RTM_ADD: Add Route: len 132, pid: 25162, seq 1, errno 0, flags:<UP,GATEWAY,DONE,STATIC>
locks:  inits:
sockaddrs: <DST,GATEWAY,NETMASK>
 10.0.1.0 192.168.200.2 (0) 0 ffff ff

got message of size 132 on Tue Nov 10 13:21:38 2009
RTM_DELETE: Delete Route: len 132, pid: 25163, seq 1, errno 0, flags:<GATEWAY,DONE,STATIC>
locks:  inits:
sockaddrs: <DST,GATEWAY,NETMASK>
 10.0.1.0 192.168.200.2 (255) ffff ffff ff

got message of size 116 on Tue Nov 10 13:21:39 2009
RTM_DELETE: Delete Route: len 116, pid: 25164, seq 1, errno 3, flags:<UP,GATEWAY,STATIC>
locks:  inits:
sockaddrs: <DST,NETMASK>
 10.0.1.0 (0) 0 ffff ff




-- 
Eugene Perevyazko



More information about the Bird-users mailing list