Go to file
Lakshman Krishnamoorthy 82b692c0cb bgpd: Route-map VNI in-filter filters out all the routes for EVPN
Issue1: When a vni in-filter eg:"neighbor X.X.X.X route-map RM-VNI-FILTER in"
is configured under evpn address-family, all the received routes are dropped
regardless of whether the route has a matching vni or not.
(Where RM-VNI-FILTER contains "match evpn vni 100")

Issue2: Routes with 2 labels are not filtered correctly

Issue3: This filter should not get applied for MPLS routes. For MPLS routes,
we need route-map to handle a 3rd state besides match/nomatch called: noop.

Fix1: The handler bgp_update() that services the received route ignored the
route's label while deciding whether to filter it or not.
As part of the fix, the handler now uses the label info to make the
decision about whether to filter the route or not.

Fix2: route_match_vni() now tries to match both the labels within the route

Fix3: route_match_vni() should return noop when it encounters an mpls based
route. For this, route_map library should handle this 3rd state: RMAP_NOOP.

Related fix : Extract tunnel type
This fix relies on PR 4314 #4314 to extract the tunnel type from bgp extended
communities. The information about the route's tunnel type (vxlan or mpls)
is needed to apply "match evpn vni xx" rule.  This rule is applicable to
vxlan routes, and should exit safely for mpls based evpn routes.

Signed-off-by: Lakshman Krishnamoorthy lkrishnamoor@vmware.com
2019-07-22 08:08:25 -07:00
.github .github: move pr template to subdir 2019-03-29 16:51:58 +00:00
alpine docker: build alpine docker w/ rpki enabled 2019-07-15 17:39:43 +00:00
babeld Revert "Ospf missing interface handling 2" 2019-06-23 19:46:39 -04:00
bfdd bfdd: keep source information for single hop 2019-07-09 09:49:45 -03:00
bgpd bgpd: Route-map VNI in-filter filters out all the routes for EVPN 2019-07-22 08:08:25 -07:00
debian lib: split off c-ares code from nhrpd 2019-07-03 17:15:34 +02:00
doc Merge pull request #4088 from opensourcerouting/bump-libyang-requirement-vers 2019-07-09 17:59:17 +03:00
docker docker: cleanup Debian docker build 2019-06-20 16:59:26 +00:00
eigrpd lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP 2019-07-22 08:08:13 -07:00
fpm *: s/TRUE/true/, s/FALSE/false/ 2019-07-01 17:26:05 +00:00
gdb bgpd: Convert binfo to path 2018-10-09 14:26:30 -04:00
grpc lib: add new gRPC-based northbound plugin 2019-04-26 18:15:32 -03:00
include Revert "include: Add linux header mroute.h to our build" 2019-01-31 01:37:14 +01:00
isisd lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP 2019-07-22 08:08:13 -07:00
ldpd ldpd: set default instance to 1 2019-07-10 15:20:27 +02:00
lib lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP 2019-07-22 08:08:13 -07:00
m4 build: refactor & revamp python autoconf logic 2019-06-04 16:21:20 +02:00
nhrpd lib: split off c-ares code from nhrpd 2019-07-03 17:15:34 +02:00
ospf6d lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP 2019-07-22 08:08:13 -07:00
ospfclient build: fix a whole bunch of *FLAGS 2019-01-30 19:13:51 +01:00
ospfd lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP 2019-07-22 08:08:13 -07:00
pbrd pbrd: Do not install nexthop group until we have nexthops 2019-07-16 20:41:01 -04:00
pimd Merge pull request #4635 from AnuradhaKaruppiah/evpn-pim-replay 2019-07-15 15:40:12 -05:00
pkgsrc *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
python clippy: find headers relative to source tree 2019-07-03 15:05:41 +02:00
qpb *: fix config.h/zebra.h include order 2018-09-08 21:30:42 +02:00
redhat build: refactor & revamp python autoconf logic 2019-06-04 16:21:20 +02:00
ripd lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP 2019-07-22 08:08:13 -07:00
ripngd lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP 2019-07-22 08:08:13 -07:00
sharpd Revert "Ospf missing interface handling 2" 2019-06-23 19:46:39 -04:00
snapcraft snapcraft: Add libdb5.3 dependency 2019-05-29 01:41:02 +02:00
solaris *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
staticd staticd: If we are told a nexthop has changed reinstall the route. 2019-06-24 10:46:24 -04:00
tests Merge pull request #4680 from donaldsharp/test_longer 2019-07-17 13:34:51 -04:00
tools tools: add vim snippet 2019-06-12 19:35:43 +02:00
vrrpd Merge pull request #4655 from qlyoung/fix-vrrp-iface-del-infiniteloop 2019-07-09 11:21:44 -03:00
vtysh vtysh: Make nexthop-group submode line unique 2019-07-13 15:42:41 -04:00
watchfrr *: fix some dumb printf format warnings 2019-06-11 13:34:57 +02:00
yang Merge pull request #4669 from opensourcerouting/bfd-isis-northbound 2019-07-16 09:17:51 -04:00
zebra lib: Introducing a 3rd state for route-map match cmd: RMAP_NOOP 2019-07-22 08:08:13 -07:00
.clang-format clang-format: update the ForEachMacros setting 2019-05-21 16:00:19 -03:00
.dir-locals.el .dir-locals.el: show trailing whitespace 2017-11-07 12:05:09 -05:00
.dockerignore docker/alpine: Update buildscript to keep the docker image around 2019-03-27 15:39:54 +01:00
.gitignore git: Ignore Visual Studio Code settings 2019-05-11 10:12:43 +03: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-auto.in debian: cleanly split off from dist tarball 2019-02-19 21:31:18 +01:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac Merge pull request #4088 from opensourcerouting/bump-libyang-requirement-vers 2019-07-09 17:59:17 +03: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 build: improve clippy options 2019-06-12 19:22:59 +02:00
README.md README.md: add VRRP to list of protocols 2019-06-18 02:07:07 +00:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00

FRRouting

FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD as well as Solaris and supports all modern CPU architectures.

FRR currently supports the following protocols:

  • BGP
  • OSPFv2
  • OSPFv3
  • RIPv1
  • RIPv2
  • RIPng
  • IS-IS
  • PIM-SM/MSDP
  • LDP
  • BFD
  • Babel
  • PBR
  • OpenFabric
  • VRRP
  • EIGRP (alpha)
  • NHRP (alpha)

Installation & Use

Packages are available for various distributions on our releases page.

Snaps are also available here.

Instructions on building and installing from source for supported platforms may be found here.

Once installed, please refer to the user guide for instructions on use.

Community

The FRRouting email list server is located here and offers the following public lists:

Topic List
Development dev@lists.frrouting.org
Users & Operators frog@lists.frrouting.org
Announcements announce@lists.frrouting.org

For chat, we currently use Slack. You can join by clicking the "Slack" link under the Participate section of our website.

Contributing

FRR maintains developer's documentation which contains the project workflow and expectations for contributors. Some technical documentation on project internals is also available.

We welcome and appreciate all contributions, no matter how small!

Security

To report security issues, please use our security mailing list:

security [at] lists.frrouting.org