Well - I've added some printf()s to determine that what I suspected was correct. The route is being entered into the table twice.
If looks like in_ifinit() is calling the sioctl() routine, which calls if_up(), which then adds the route. Then, in_ifinit() goes on to add another route and *poof* - the route's already there - you get EEXISTS. What's interesting about this is it only happens on my small laptop. On an older 486 I have - if_up() doesn't seem to get invokved (I'm working on finding out why.) For those interested - see /sys/netinet/in.c and /sys/net/if.c and /sys/net/if_sl.c. This is all with a 3.2-RELEASE source base. - Dave Rivers - To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-hackers" in the body of the message