From ba5e7ae2e092726de1677c2f3a722323a7f8a6fe Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 8 Dec 2020 09:02:02 -0500 Subject: [PATCH] doc: Add some notes about RR semantics and the Linux Kernel Add doc about RR semantics for Linux Kernel and why it works the way it does. Signed-off-by: Donald Sharp --- doc/user/zebra.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/doc/user/zebra.rst b/doc/user/zebra.rst index bb456d89ca..91cd205bed 100644 --- a/doc/user/zebra.rst +++ b/doc/user/zebra.rst @@ -361,6 +361,25 @@ is interpreted as the Administrative Distance and the low three bytes are read in as the metric. This special case is to facilitate VRF default routes. +Route Replace Semantics +======================= + +When using the Linux Kernel as a forwarding plane, routes are installed +with a metric of 20 to the kernel. Please note that the kernel's metric +value bears no resemblence to FRR's RIB metric or admin distance. It +merely is a way for the Linux Kernel to decide which route to use if it +has multiple routes for the same prefix from multiple sources. An example +here would be if someone else was running another routing suite besides +FRR at the same time, the kernel must choose what route to use to forward +on. FRR choose the value of 20 because of two reasons. FRR wanted a +value small enough to be choosen but large enough that the operator could +allow route prioritization by the kernel when multiple routing suites are +being run and FRR wanted to take advantage of Route Replace semantics that +the linux kernel offers. In order for Route Replacement semantics to +work FRR must use the same metric when issuing the replace command. +Currently FRR only supports Route Replace semantics using the Linux +Kernel. + Virtual Routing and Forwarding ============================== -- 2.39.5