mirror_frr/lib
Donald Sharp 9f0ea7d4f2 zebra: zebra-nht-routemap.patch
Zebra: Add route-map support for Next Hop Tracking

It is sometimes useful to restrict the resolution of recursive routes
to only specific via's. For example, in some configurations resolving
a route through a default route is not acceptable.

This patch adds a new route-map attach point, to zebra's next-hop-tracking
server. Whenever NHT is considering sending notification of a route
resolution, it applies a specified route-map and only if it passes, is the
NHT reachable message sent to the appropriate client protocol (BGP, OSPF etc.).
If the route-map filters the resolution, then a withdraw is sent to the
client protocol.

The route-map is sent the ip address of the route via which the resolution is
happening as well as the valid NHs associated with that route.

We also add support for matching on IP addr prefix len and source protocol
to ensure that resolution happens only via a very specific route.
2015-05-19 17:47:20 -07: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 *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
command.h 'neighbor <if-name> interface' config support in BGP including RA/Zebra changes. 2015-05-19 17:40:40 -07:00
daemon.c [warnings] Fix various SOS warnings 2008-08-22 19:52:59 +01:00
distribute.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
distribute.h babeld: Initial import, for Babel routing protocol. 2012-03-25 17:06:51 +01:00
filter.c bgpd: bgpd-event-driven-route-map-updates.patch 2015-05-19 17:40:45 -07:00
filter.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
getopt1.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
getopt.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02: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 lib: fix for dynamically grown hashes 2014-04-01 17:13:02 +02:00
hash.h hash: dynamically grow hash table 2013-02-24 20:48:16 +01:00
if_rmap.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
if_rmap.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
if.c ptm-integration.patch 2015-05-19 17:40:44 -07:00
if.h ptm-integration.patch 2015-05-19 17:40:44 -07: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 *: nuke ^L (page feed) 2014-06-04 06:58:02 +02: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 *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
linklist.h lib: remove ALL_LIST_ELEMENTS dead code branch 2013-01-11 22:09:34 +01:00
log.c 'neighbor <if-name> interface' config support in BGP including RA/Zebra changes. 2015-05-19 17:40:40 -07:00
log.h bgpd: improve logging of invalid BGP Notifications 2013-01-15 17:22:01 +01:00
Makefile.am nexthop-tracking.patch 2015-05-19 17:40:34 -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 *: nuke ^L (page feed) 2014-06-04 06:58:02 +02: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 bgpd: bgpd-event-driven-route-map-updates.patch 2015-05-19 17:40:45 -07: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
nexthop.c nexthop-tracking.patch 2015-05-19 17:40:34 -07:00
nexthop.h nexthop-tracking.patch 2015-05-19 17:40:34 -07: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 bgpd: bgpd-event-driven-route-map-updates.patch 2015-05-19 17:40:45 -07:00
plist.h 2005-05-06 Paul Jakma <paul@dishone.st> 2005-05-06 21:25:49 +00:00
pqueue.c lib: use heap to manage timers 2014-04-22 21:17:00 +02:00
pqueue.h lib: use heap to manage timers 2014-04-22 21:17:00 +02:00
prefix.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
prefix.h ospfd: For an ABR, ensure the right LSID is MaxAge'd 2014-05-14 16:46:41 +02:00
privs.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
privs.h 2005-09-29 Paul Jakma <paul.jakma@sun.com> 2005-09-29 14:39:32 +00:00
queue.h *: fix detection and usage of sys/cdefs.h 2014-08-18 01:50:19 +02:00
regex-gnu.h *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
regex.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
route_types.pl zebra: zebra-nht-routemap.patch 2015-05-19 17:47:20 -07:00
route_types.txt babeld: Initial import, for Babel routing protocol. 2012-03-25 17:06:51 +01:00
routemap.c bgpd: bgpd-event-driven-route-map-updates.patch 2015-05-19 17:40:45 -07:00
routemap.h bgpd: bgpd-event-driven-route-map-updates.patch 2015-05-19 17:40:45 -07: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 *: nuke ^L (page feed) 2014-06-04 06:58:02 +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 *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
stream.h bgpd: efficient NLRI packing for AFs != ipv4-unicast 2014-06-03 15:08:32 +02:00
table.c *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
table.h lib/table: add route_table_get_next() and iterator 2012-09-26 21:50:48 +02:00
thread.c ospfd-spf-stats.patch 2015-05-19 16:36:05 -07:00
thread.h ospfd-spf-stats.patch 2015-05-19 16:36:05 -07: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 *: nuke ^L (page feed) 2014-06-04 06:58:02 +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 Add support for route tags 2015-05-19 17:46:33 -07:00
zclient.h Add support for route tags 2015-05-19 17:46:33 -07:00
zebra.h 'neighbor <if-name> interface' config support in BGP including RA/Zebra changes. 2015-05-19 17:40:40 -07:00