The route exchange feature rejected the main (254) and default (253)
routing tables as invalid, so routes present in those tables were never
learned. This is needed to learn routes from the default/main VRF, which
is where dynamic routing daemons commonly install routes.

Drop RT_TABLE_MAIN and RT_TABLE_DEFAULT from the TABLE_ID_VALID check so
these tables can be used for route exchange.

Assisted-by: Claude Opus 4.8, Cursor
Signed-off-by: Han Zhou <[email protected]>
---
 Documentation/topics/dynamic-routing/architecture.rst | 5 +++--
 NEWS                                                  | 2 ++
 controller/route-exchange-netlink.h                   | 2 --
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/Documentation/topics/dynamic-routing/architecture.rst 
b/Documentation/topics/dynamic-routing/architecture.rst
index c517fe085fea..9ebe2b19249c 100644
--- a/Documentation/topics/dynamic-routing/architecture.rst
+++ b/Documentation/topics/dynamic-routing/architecture.rst
@@ -398,8 +398,9 @@ of precedence:
 
 1. The ``dynamic-routing-vrf-id`` option on the logical router, if set to
    a valid integer in the range (1-4294967294), excluding the reserved
-   table IDs 252 (``RT_TABLE_COMPAT``), 253 (``RT_TABLE_DEFAULT``),
-   254 (``RT_TABLE_MAIN``), and 255 (``RT_TABLE_LOCAL``).
+   table IDs 252 (``RT_TABLE_COMPAT``) and 255 (``RT_TABLE_LOCAL``).
+   Table IDs 253 (``RT_TABLE_DEFAULT``) and 254 (``RT_TABLE_MAIN``) are
+   allowed for learning routes from the main/default VRF.
 
 2. The tunnel key of the logical router datapath, used as a fallback
    when ``dynamic-routing-vrf-id`` is not configured.
diff --git a/NEWS b/NEWS
index d1a6ad27fea8..6a8070b0e186 100644
--- a/NEWS
+++ b/NEWS
@@ -34,6 +34,8 @@ Post v26.03.0
        generates proxy-reply flows using a dedicated side table
        and the new chk_evpn_arp() action, preventing unnecessary
        flooding to remote VTEPs.
+     * Allow learning routes from the main (254) and default (253) routing
+       tables, e.g. by setting "dynamic-routing-vrf-id" accordingly.
    - Added "override-connected" option to Logical Router Static Routes to mark
      static routes as higher-priority than connected routes, which in turn led
      to changes in administrative distance for specific route types. Please see
diff --git a/controller/route-exchange-netlink.h 
b/controller/route-exchange-netlink.h
index f79ae05db692..c137b5119b36 100644
--- a/controller/route-exchange-netlink.h
+++ b/controller/route-exchange-netlink.h
@@ -31,8 +31,6 @@
 
 #define TABLE_ID_VALID(table_id) (table_id != RT_TABLE_UNSPEC &&              \
                                   table_id != RT_TABLE_COMPAT &&              \
-                                  table_id != RT_TABLE_DEFAULT &&             \
-                                  table_id != RT_TABLE_MAIN &&                \
                                   table_id != RT_TABLE_LOCAL &&               \
                                   table_id != RT_TABLE_MAX)
 
-- 
2.38.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to