I used ipv6cp-use-persistent in /etc/ppp/options files, and problem of changing link local address was solved. I can also try without ipv6cp-use-persistent, to test patch, if you there is a necessity.
But problem with convergence is still present, not always but sometimes. I enclosed again debug files, I tried few times disconnecting link, after few successful converging of link, you can see there is still a problem. The only solution was to disconnect link from other side or to restart babel process. I did not change any of parameters. ANd again thank you very much for support. I hope you dont have to much work because of my experiments :) Robert -----Original Message----- From: Juliusz Chroboczek [mailto:[EMAIL PROTECTED] Sent: Thu 7/3/2008 5:23 PM To: Robert Lukan; [email protected] Subject: Re: [Babel-users] Convergence problem > The issue is that your implementation of ppp switches link-local > addresses on every up/down event. IPv6 link-local addresses are > supposed to remain stable, so this is why Babel gets confused by this > case. I'll implement a workaround, but you really should try to > ensure that your link-local addresses remain stable if possible. Please try the attached patch, and let me know if it fixes your issue. Juliusz Thu Jul 3 17:21:04 CEST 2008 Juliusz Chroboczek <[EMAIL PROTECTED]> * Protect against duplicate neighbours. diff -rN -u old-babel/neighbour.c new-babel/neighbour.c --- old-babel/neighbour.c 2008-07-03 17:21:33.000000000 +0200 +++ new-babel/neighbour.c 2008-07-03 17:21:33.000000000 +0200 @@ -48,6 +48,17 @@ return NULL; } +struct neighbour * +find_neighbour_by_id(const unsigned char *id, struct network *net) +{ + struct neighbour *neigh; + FOR_ALL_NEIGHBOURS(neigh) { + if(memcmp(id, neigh->id, 16) == 0 && neigh->network == net) + return neigh; + } + return NULL; +} + void flush_neighbour(struct neighbour *neigh) { @@ -84,6 +95,22 @@ neigh = NULL; } } + + neigh = find_neighbour_by_id(id, net); + if(neigh) { + if((neigh->reach & 0xE000) == 0) { + /* The other neighbour is probably obsolete. */ + flush_neighbour(neigh); + neigh = NULL; + } else { + fprintf(stderr, "Duplicate neighbour %s (%s and %s)!\n", + format_address(id), + format_address(neigh->address), + format_address(address)); + return NULL; + } + } + debugf("Creating neighbour %s (%s).\n", format_address(id), format_address(address));
babel.alix.log.gz
Description: babel.alix.log.gz
babel.suse.log.gz
Description: babel.suse.log.gz
_______________________________________________ Babel-users mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/babel-users

