Go to file
Chirag Shah 6f19bb0ee7 ospf6d: Fix inter area prefix
Inter Area Prefix LSA ECMP is not working properly.
Two ABRs advertising IAP routes to backbone, not installed
with correct cost or if ABR restarted the route is removed
from backbone.
The current implementation ABR was not suppressing IAP update
for prefix cost is not better or route is not installed.
The better cost or path route was overwritten with non optimal
cost. This caused a loop with nexthops pointing each other
at backbone and non-backbone routers.

Consider to only send BEST/installed route's IAP notification
at ABRs.
When receiving IAP update from multiple ABRs, preserve multiple
advertising routers under the prefix route node.
Upon LSA maxage only remove the advertising route's which is
impacted and update route's nexthops and update FIB.

Testing Done:
Top to Bottom is part of area 0 on the Right, and
from Left side in area 1.
Top and Bottom act as ABRs.
H1 route is sent as Inter-Area Prefix to Right.
Trigger multiple triggers for ABR routes.
1) Shutting down link between, top to right to eliminate nhs
2) Restart frr at Top.
3) Restart frr at Right.

                                     +-----------+
                                     .           |
                                   ,'|   Top     |`.
                                  /  .           |  \
                                ,' ,'+.----------+`. `.
                               /  /  `          `.  \  ',
                             ,' ,' ,'             \  `.  .
                            -  /  `                `.  ', `,
                          ,` ,` ,'                   \   \  \
                         '  -  `                      `.  `, `,
       +--------+    +--`--`--`--+                  +---'---'--'+    +--------+
       |        |    |           |                  |           |    |        |
       |    H1  ------  Left     |                  |   Right   ------   H2   |
       |        |    |           |                  |           |    |        |
       +--------+    +-----------+                  +----.--,-,-+    +--------+
                        `.  `   \                       -  / /
                          \  `.  `                    ,' .` `
                           '   .  \                  /  /  '
                            `.  \  `.               `  / ,'
                              \  `   .            ,`  / /
                               `. `.  .          /   / /
                                 \  .  \       ,'   ' /
                                  '  '--'--------+,'.`
                                   `.|           - /
                                     '  mid1     |/
                                     |           -
                                     +-----------+

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-05-21 07:29:21 -07:00
alpine alpine packaging: use a more standard packaging format 2018-04-09 15:34:50 -07:00
babeld babeld: fix cli option to override config file (-f) 2018-04-30 18:02:27 -07:00
bgpd Merge pull request #2198 from LabNConsulting/working/master/bgpd-nht-crash 2018-05-18 07:51:06 -04:00
debianpkg Merge pull request #2197 from qlyoung/docuser-debianpkg 2018-05-12 06:27:26 -04:00
doc Merge pull request #2260 from qlyoung/fix-docs-distclean 2018-05-19 22:30:18 -03:00
docker alpine packaging: use a more standard packaging format 2018-04-09 15:34:50 -07:00
eigrpd Merge pull request #2169 from piotrjurkiewicz/eigrp_feasibility 2018-05-03 23:02:36 -04:00
fpm build: clean up BUILT_SOURCES 2017-08-04 11:13:55 +02:00
gdb gdb: Add a directory of files with gdb macros 2016-05-26 15:33:30 +00:00
include *: PBR - netlink interaction and basic definitions 2018-03-09 11:07:41 -05:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd isisd: use 0 as default-metric for redistribution 2018-05-08 17:32:15 +02:00
ldpd *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
lib Merge pull request #2101 from qlyoung/stream-fifo-safe 2018-05-15 12:29:45 -03:00
m4 build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
nhrpd *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
ospf6d ospf6d: Fix inter area prefix 2018-05-21 07:29:21 -07:00
ospfclient *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
ospfd ospfd: packet fifo init in interface create 2018-05-10 17:45:43 -07:00
pbrd pbrd: Fix compilation warn -> error 2018-05-15 13:52:02 -04:00
pimd pimd: Clean up rpf_hash *after* upstream cleanup 2018-05-11 18:39:09 -04:00
pkgsrc *: Remove cvs control points 2017-12-05 17:28:12 -05:00
ports pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
python lib, python: DEFPY_ATTR, DEFPY_HIDDEN 2018-04-10 12:19:03 -04:00
qpb *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
redhat doc: add "Getting Started" section 2018-05-16 20:24:15 +00:00
ripd ripd: rip_snmp.c - Remove not needed check 2018-04-11 07:35:20 -04:00
ripngd *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
sharpd sharp: Allow the specification of instance when adding/deleting routes 2018-05-17 10:59:17 -04:00
snapcraft snapcraft: Add PBR daemon to snap package 2018-04-30 18:53:18 -07:00
solaris gitignore: update references to FRR 2017-07-12 11:55:04 -05:00
tests tests: add missing file to Makefile.am 2018-05-18 19:45:10 +00:00
tools redhat, tools: Increase startup time out a bit 2018-05-01 23:35:53 -04:00
vtysh Merge pull request #2221 from rodnymolina/vtysh_extension 2018-05-17 13:03:11 -04:00
watchfrr *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
zebra zebra: Cleanup some nits from Review Comments 2018-05-21 07:18:18 -04:00
.clang-format ospfd: LSDB_LOOP treat it as a loop. 2018-01-17 13:29:58 -05:00
.dir-locals.el .dir-locals.el: show trailing whitespace 2017-11-07 12:05:09 -05:00
.dockerignore alpine packaging: build packages and base image directly from git 2018-04-04 10:05:44 -07:00
.gitignore *: globally ignore clippy-generated source 2018-03-09 17:52:15 -05:00
AUTHORS Initial revision 2002-12-13 20:15:29 +00:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
ChangeLog Rename: freerangerouting --> frrouting 2017-03-30 14:24:05 -04:00
common.am frr: --enable-address-sanitizer 2018-03-21 20:47:34 -04:00
configure.ac Merge pull request #2162 from qlyoung/fix-vpath-build 2018-05-12 06:23:03 -04:00
COPYING *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
defaults.h *: reindent 2017-07-17 14:04:07 +02:00
Makefile.am doc: add "Getting Started" section 2018-05-16 20:24:15 +00:00
NEWS release: 0.99.24 2016-06-03 15:56:44 -04:00
README frr: fix typo in README 2018-05-14 11:06:27 -04:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
update-autotools * README.NetBSD: use update-autotools instead of autoreconf 2007-02-02 16:52:38 +00:00

FRRouting is free software that implements and manages various IPv4 and IPv6
routing protocols.

Currently FRRouting supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng,
IS-IS, PIM-SM/MSDP, LDP and Babel as well as very early support for EIGRP and
NHRP.

See doc/user/bugs.rst for information on how to report bugs.

See doc/developer/workflow.rst for information on contributing.

See the file COPYING for copying conditions.

Public email discussion can be found at https://lists.frrouting.org/listinfo

Our public slack channel is at https://frrouting.slack.com