Go to file
Stephen Worley b991a37262 zebra: nhg resolution handler for d-vni
Add code in the nhg resolution path for determining if Downstream
VNI is in play. This is the only place in all of zebra where
we should be arbitrarily setting the ifindex/labels since
this is where new nhgs are created/destroyed. If something
changes, it must happen here.

We determine if D-VNI is being used by matching the carried
label (VNI) on the nexthop with the vrf VNI from the route.
If they do not match, we can assume this is a D-VNI labeled
nexthop.

We loop through all of the group to see if any are D-VNI. If even
one is, we must treat them all as such. Otherwise, fallback to
traditional EVPN route handling and remove all the labels.

If they are going to be treated as D-VNI we retain the labels and
verify the underlying VRF vxlan interface is a Single VXlan Device.
If it is not, we cannot use D-VNI. If it is, continue on. The VNI label
will encapped via LWTUNNEL and sent to the kernel.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2023-02-13 18:12:05 -05:00
.github tools: Fetch more commits for commitlint to validate the commit 2023-02-07 22:03:42 +02:00
alpine docker,alpine: Remove isl from dependencies 2023-01-06 23:48:23 +09:00
babeld Merge pull request #12762 from sri-mohan1/sri-bable 2023-02-09 19:36:08 -05:00
bfdd bfdd: fix size_t format string 2023-01-27 12:01:20 +01:00
bgpd bgpd: send L3VNI as route labels to zebra 2023-02-13 18:12:05 -05:00
debian tools: Bump versions for Redhat and Debian packages in changelogs 2023-02-07 22:17:49 +02:00
doc zebra: Add documentation for Single Vxlan Device support 2023-02-13 18:12:04 -05:00
docker docker: Use Alpine 3.17 as base image 2022-12-02 15:42:00 +02:00
eigrpd *: introduce function for sequence numbers 2023-01-20 15:40:28 -03:00
fpm build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
gdb gdb: Add a macro to walk memory allocations 2022-08-24 07:13:29 -04:00
grpc build: fix gRPC build dependencies 2022-10-26 17:12:34 +01:00
include include: add pkt_cls.h to automake headers 2022-11-22 22:35:34 +08:00
isisd lib,zebra,bgpd,staticd: use label code to store VNI info 2023-02-13 18:12:05 -05:00
ldpd Merge pull request #12707 from donaldsharp/missed_enums 2023-02-07 22:22:27 +02:00
lib lib,sharpd: add ability for sharpd to install vni labels 2023-02-13 18:12:05 -05:00
m4 build: fix sed regex in Lua macro 2022-12-08 12:39:17 +01:00
mlag build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
nhrpd nhrpd: Add missing enum's to switch statement 2023-01-31 15:15:42 -05:00
ospf6d *: Drop deprecated incorrect JSON fields with wrong naming 2023-01-31 10:18:28 +02:00
ospfclient ospfd, ospfclient: Do not just include .c files in another .c 2022-12-05 11:55:14 -05:00
ospfd lib,zebra,bgpd,staticd: use label code to store VNI info 2023-02-13 18:12:05 -05:00
pathd pathd: Add missing enum's to switch statement 2023-01-31 15:15:42 -05:00
pbrd pbrd: fix large tableids displayed as negative 2023-02-08 16:28:27 -05:00
pceplib Merge pull request #12707 from donaldsharp/missed_enums 2023-02-07 22:22:27 +02:00
pimd Merge pull request #12776 from patrasar/Issue_12755 2023-02-10 08:07:32 -05:00
pkgsrc *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
python python: hide inet_ntoa from frrbot 2022-10-28 11:18:06 +01:00
qpb qpb: Add missing enum's to switch statement 2023-01-31 15:15:59 -05:00
redhat tools: Bump versions for Redhat and Debian packages in changelogs 2023-02-07 22:17:49 +02:00
ripd ripd: Add missin enum's to switch statement 2023-01-31 15:15:59 -05:00
ripngd ripngd: Add missing enums to switch statement 2023-01-31 15:15:59 -05:00
sharpd lib,sharpd: add ability for sharpd to install vni labels 2023-02-13 18:12:05 -05:00
snapcraft snapcraft: Add pim6 daemon for PIM IPv6 to snap package 2022-11-19 12:52:36 +01:00
staticd staticd: Add missing enum's to switch statement 2023-01-31 15:15:42 -05:00
tests tests: add new topotest for single vxlan device config 2023-02-13 18:12:04 -05:00
tools tools: Fix missing pbrd in rsyslog.d 45-frr.conf file 2023-02-08 13:04:01 -05:00
vrrpd vrrpd: add IPv4 pseudoheader option for VRRPv3 2022-11-25 16:21:59 +08:00
vtysh vtysh: Schedule shell access for deprecation 2023-02-01 10:29:02 -05:00
watchfrr Merge pull request #12695 from opensourcerouting/format-warnings 2023-01-31 09:01:32 -05:00
yang yang: fix race condition in embedmodel.py mkdir 2023-01-24 18:19:18 +01:00
zebra zebra: nhg resolution handler for d-vni 2023-02-13 18:12:05 -05:00
.clang-format lib: add _last and _prev on typesafe RB/DLIST 2022-03-12 13:23:36 +01:00
.dir-locals.el tests: remove python format block from dir-locals 2021-09-13 10:04:29 -04:00
.dockerignore docker: Make docker image on CentOS 7 2019-11-26 19:29:30 +00:00
.git-blame-ignore-revs tools: Ignore mass renaming of topotests for git blame 2021-05-11 14:14:26 +03:00
.gitignore *: Add some missed make check generated files in .gitignore 2021-09-16 08:13:17 -04:00
.pylintrc tests: micronet: update infra 2021-09-04 09:04:46 -04:00
.travis.yml lib: libyang2 add missed conversion 2021-05-17 22:13:59 -04:00
bootstrap.sh build: turn on automake warnings (& symlinks) 2021-04-21 15:42:37 +02:00
buildtest.sh build: remove --enable-exampledir 2021-06-24 16:42:58 +02: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 #12707 from donaldsharp/missed_enums 2023-02-07 22:22:27 +02: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
Makefile.am packaging: Reuse frr.logrotate for Debian and Redhat builds 2022-11-08 11:17:56 +02:00
README.md doc: Fix the link that points to Slack invitation in README 2022-03-24 13:13:37 +02:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
version.h build: make builddir include path consistent 2021-04-21 15:42:33 +02:00

Icon

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 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

For source tarballs, see the releases page.

For Debian and its derivatives, use the APT repository at https://deb.frrouting.org/.

Instructions on building and installing from source for supported platforms may be found in the developer docs.

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