mirror_frr/lib
Dinesh Dutt b81e97a8a7 ospf6d: correct nexthop through directly connected networks
This is implementing this part of RFC 2328:

This is the "first case", see below,

16.1.1. The next hop calculation

...
If there is at least one intervening router in the current
shortest path between the destination and the root, the
destination simply inherits the set of next hops from the
parent. Otherwise, there are two cases. In the first case,
the parent vertex is the root (the calculating router
itself). This means that the destination is either a
directly connected network or directly connected router.
The outgoing interface in this case is simply the OSPF
interface connecting to the destination network/router.
...

The current Quagga code always tries to inherit the nexthop from
a parent vertex, but does not cover the case that the destination
is directly connected to the root vertex. This patch adds support
for that case.

Signed-off-by: James Li <jli at cumulusnetworks.com>
Reviewed-by: Dinesh G Dutt <ddutt at cumulusnetworks.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2013-11-07 18:15:43 -08:00
..
.gitignore build: include git info 2012-12-12 15:34:37 +01:00
agentx.c agentx: handle SNMP traps 2012-06-25 19:03:23 +02:00
buffer.c *: use array_size() helper macro 2012-10-25 10:15:59 -07:00
buffer.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
checksum.c lib: improve fletcher checksum validation 2012-10-25 10:15:58 -07:00
checksum.h lib: improve fletcher checksum validation 2012-10-25 10:15:58 -07:00
command.c build: include git info 2012-12-12 15:34:37 +01:00
command.h babeld: Initial import, for Babel routing protocol. 2012-03-25 17:06:51 +01:00
daemon.c [warnings] Fix various SOS warnings 2008-08-22 19:52:59 +01:00
distribute.c babeld: Initial import, for Babel routing protocol. 2012-03-25 17:06:51 +01:00
distribute.h babeld: Initial import, for Babel routing protocol. 2012-03-25 17:06:51 +01:00
filter.c lib: call filter delete hook before freeing access list 2011-12-06 15:02:34 +04:00
filter.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
getopt1.c 2005-05-15 Paul Jakma <paul@dishone.st> 2005-05-15 14:25:08 +00:00
getopt.c 2005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com> 2005-08-10 13:20:03 +00:00
getopt.h 2005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com> 2005-08-10 13:20:03 +00:00
gitversion.pl build: fix minimal mixup in gitinfo suffix 2013-04-09 17:05:08 +02:00
hash.c hash: dynamically grow hash table 2013-02-24 20:48:16 +01:00
hash.h hash: dynamically grow hash table 2013-02-24 20:48:16 +01:00
if_rmap.c fix set never used warnings 2011-12-18 20:21:21 +04:00
if_rmap.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
if.c ospf6d: correct nexthop through directly connected networks 2013-11-07 18:15:43 -08:00
if.h ospf6d: correct nexthop through directly connected networks 2013-11-07 18:15:43 -08:00
jhash.c 2004-07-09 Paul Jakma <paul@dishone.st> 2004-07-09 14:05:47 +00:00
jhash.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
keychain.c [cleanup] Make command nodes static 2009-06-12 17:10:29 +01:00
keychain.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
libospf.h ospf6d: add p2p interface support 2013-11-07 18:15:42 -08:00
linklist.c [cleanup] Convert XMALLOC/memset to XCALLOC 2009-06-12 17:07:49 +01:00
linklist.h lib: remove ALL_LIST_ELEMENTS dead code branch 2013-01-11 22:09:34 +01:00
log.c *: use array_size() helper macro 2012-10-25 10:15:59 -07:00
log.h bgpd: improve logging of invalid BGP Notifications 2013-01-15 17:22:01 +01:00
Makefile.am ospf6d/ospfd: refactor some common defines 2013-10-22 18:01:31 -07:00
md5.c lib: add support for keyed-hashing with MD5 2012-04-07 13:53:22 -07:00
md5.h lib: add support for keyed-hashing with MD5 2012-04-07 13:53:22 -07:00
memory.c memory: install babel memory informations. 2012-03-25 17:06:52 +01:00
memory.h lib: add array_size() helper 2012-10-25 10:15:59 -07:00
memtypes.awk [lib] fix gensub call in memtypes.awk to pass "g", not g. 2006-03-30 14:30:19 +00:00
memtypes.c zebra: add way to determine VRF/AFI/SAFI of table 2012-11-30 21:41:16 +01:00
network.c 2005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-02-16 16:25:39 +00:00
network.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
pid_output.c + pidfiles are now always created with 0644 perms instead if LOGFILE_MASK (0600) 2007-10-04 15:09:19 +00:00
plist.c [cleanup] Make command nodes static 2009-06-12 17:10:29 +01:00
plist.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
pqueue.c [ospfd] Fix bad SPF calculation on some topologies - incorrect sorting 2007-08-06 18:52:45 +00:00
pqueue.h [ospfd] Fix bad SPF calculation on some topologies - incorrect sorting 2007-08-06 18:52:45 +00:00
prefix.c lib: pretty ip_masklen and masklen2ip 2012-04-04 00:25:51 +02:00
prefix.h general: remove inline qualifiers and move in-header functions to objects 2012-01-06 16:18:18 +00:00
privs.c [privs/Solaris] Quagga should work in zones with IP instances 2007-09-18 18:07:18 +00:00
privs.h 2005-09-29 Paul Jakma <paul.jakma@sun.com> 2005-09-29 14:39:32 +00:00
queue.h lib: bring in sys/queue.h from FreeBSD tree 2012-11-30 21:41:17 +01:00
regex-gnu.h Initial revision 2002-12-13 20:15:29 +00:00
regex.c 2006-01-17 Vincent Jardin <vincent.jardin@6wind.com> 2006-01-17 23:39:04 +00:00
route_types.pl lib: put route_types.txt to real use 2011-12-13 19:13:17 +04:00
route_types.txt babeld: Initial import, for Babel routing protocol. 2012-03-25 17:06:51 +01:00
routemap.c [bgpd] Stability fixes including bugs 397, 492 2009-07-19 18:28:08 +01:00
routemap.h babeld: Initial import, for Babel routing protocol. 2012-03-25 17:06:51 +01:00
sigevent.c *: use array_size() helper macro 2012-10-25 10:15:59 -07:00
sigevent.h *: use array_size() helper macro 2012-10-25 10:15:59 -07:00
smux.c agentx: handle SNMP traps 2012-06-25 19:03:23 +02:00
smux.h snmp: let handlers accept OID from a lesser prefix 2012-06-25 19:03:23 +02:00
snmp.c snmp: let handlers accept OID from a lesser prefix 2012-06-25 19:03:23 +02:00
sockopt.c lib: compile even without IPV6_TCLASS 2011-10-17 18:59:26 +04:00
sockopt.h IPv6 transport class suppport 2011-10-17 18:59:19 +04:00
sockunion.c lib: Add back sockunion_str2su 2012-06-14 10:37:40 +01:00
sockunion.h lib: Add back sockunion_str2su 2012-06-14 10:37:40 +01:00
str.c * configure.ac: Test existance of strndup. 2005-09-19 09:53:21 +00:00
str.h * configure.ac: Test existance of strndup. 2005-09-19 09:53:21 +00:00
stream.c lib: improve sanity checks in stream_set_endp() 2012-10-25 10:15:58 -07:00
stream.h lib: add stream_set_endp() 2012-04-07 13:53:40 -07:00
table.c lib/table: add route_table_get_next() and iterator 2012-09-26 21:50:48 +02:00
table.h lib/table: add route_table_get_next() and iterator 2012-09-26 21:50:48 +02:00
thread.c hash: force size to be a power of 2 2013-02-24 20:42:40 +01:00
thread.h lib: do not allocate/free thread funcnames 2012-05-22 20:50:14 +02:00
vector.c 2005-03-14 Paul Jakma <paul.jakma@sun.com> 2005-03-14 20:19:01 +00:00
vector.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
version.h.in build: include git info 2012-12-12 15:34:37 +01:00
vty.c lib/vty: register vtysh socket in server socket vector (BZ#754) 2013-04-09 22:35:29 +02:00
vty.h lib: Changes to VTY string-parsing macros to remove warnings 2013-01-07 09:59:51 -08:00
workqueue.c general: remove inline qualifiers and move in-header functions to objects 2012-01-06 16:18:18 +00:00
workqueue.h + initial edition of meta-queue for RIB updates processing (bug #431) 2008-06-02 12:03:22 +00:00
zassert.h Need RCS Id keyword. 2004-12-03 18:01:04 +00:00
zclient.c zebra: fix sockaddr_dl length assumptions (BZ#737) 2013-01-16 01:45:57 +01:00
zclient.h lib: bump ZSERV_VERSION to 2 2012-04-20 17:29:44 +02:00
zebra.h lib: unconditionally include stddef.h 2013-07-30 18:14:13 +02:00