Uploaded image for project: 'Fast Datapath Product'
  1. Fast Datapath Product
  2. FDP-2233

CLONE [ovn25.03 fast-datapath-rhel-10] - Upstream: OVN dynamic-routing - unable to use the same VRF ID for different logical routers

    • 2
    • False
    • False
    • Hide

      Please mark each item below with ( / ) if completed or ( x ) if incomplete:
      ( ) Unit test or Integration test case are written and pass successfully


      ( ) The upstream pull request is merged upstream and pass CI

      Show
      Please mark each item below with ( / ) if completed or ( x ) if incomplete: ( ) Unit test or Integration test case are written and pass successfully ( ) The upstream pull request is merged upstream and pass CI
    • ovn25.03-25.03.1-98.el10fdp
    • rhel-10
    • None
    • rhel-net-ovn
    • Critical
    • +

      This is tracking the upstream effort needed to deliver the solution to the bug described below.


       Problem Description: Clearly explain the issue.

      OVN's dynamic routing support relies on ovn-controller being able to monitor (and update) Linux VRF routing tables through netlink.

      Currently, the VRF ID to be monitored by ovn-controller for a given logical router is taken from the Logical_Router's Southbound Datapath_binding.tunnel_key field.

      However, Southbound Datapath_binding.tunnel_keys must be unique.  That means that in scenarios where multiple OVN gateway routers (bound to a chassis) are used for dynamic routing these gateway routers cannot monitor the same VRF ID on different chassis.

      This makes the feature virtually unusable in deployments where per-chassis OVN Gateway Routers are used for monitoring the host's VRF routing table.  E.g.:

      https://drive.google.com/file/d/17cdQ45gVcdxgzuprxWVNMXuPBSPsTAIJ/view

       Impact Assessment: Describe the severity and impact (e.g., network down,availability of a workaround, etc.).

       

       Software Versions: Specify the exact versions in use (e.g.,openvswitch3.1-3.1.0-147.el8fdp).

      ovn25.03, including ovn25.03-25.03.1-86.el9fdp

        Issue Type: Indicate whether this is a new issue or a regression (if a regression, state the last known working version).

      Day one issue.

       Reproducibility: Confirm if the issue can be reproduced consistently. If not, describe how often it occurs.

      Yes.

       Reproduction Steps: Provide detailed steps or scripts to replicate the issue.

      There's simply no way to configure multiple OVN GW routers to monitor the same VRF ID on different chassis, e.g., with the following configuration:

      ovn-nbctl lr-add lr1                                          \
        -- set logical_router lr1 options:dynamic-routing=true      \
                                 options:chassis=chassis-1          \
                                 options:requested-tnl-key=42       \
        -- lrp-add lr1 lrp1 00:00:00:00:00:01 1.1.1.1/24            \
          -- lrp-set-options lrp1 dynamic-routing-maintain-vrf=true \
        -- ls-add ls1                                               \
          -- lsp-add ls1 lsp1                                       \
          -- lsp-set-type lsp1 router                               \
          -- lsp-set-addresses lsp1 router                          \
          -- lsp-set-options lsp1 router-port=lrp1                  \
        -- lr-add lr2                                               \
        -- set logical_router lr2 options:dynamic-routing=true      \
                                 options:chassis=chassis-2          \
                                 options:requested-tnl-key=42       \
        -- lrp-add lr2 lrp2 00:00:00:00:00:02 2.2.2.2/24            \
          -- lrp-set-options lrp2 dynamic-routing-maintain-vrf=true \
        -- ls-add ls2                                               \
          -- lsp-add ls2 lsp2                                       \
          -- lsp-set-type lsp2 router                               \
          -- lsp-set-addresses lsp2 router                          \
          -- lsp-set-options lsp2 router-port=lrp2 

      Only one of the two routers will have its SB Datapath_Binding.tunnel_key set to 42, e.g.:

      > ovn-sbctl find datapath_binding external_ids:name=lr1
      _uuid               : 08b4aa3c-b8a4-4f3a-ad1a-39ed6e038ff6
      external_ids        : {disable_garp_rarp="false", logical-router="5bbc5016-8c8b-499b-be97-69f719e3fb15", name=lr1}
      load_balancers      : []
      nb_uuid             : 5bbc5016-8c8b-499b-be97-69f719e3fb15
      tunnel_key          : 3
      type                : logical-router> ovn-sbctl find datapath_binding external_ids:name=lr2
      _uuid               : cba32504-939d-4395-8dea-0bd1fade3afc
      external_ids        : {disable_garp_rarp="false", logical-router="e18f6120-f651-4aff-bae6-3a0105fa54bf", name=lr2}
      load_balancers      : []
      nb_uuid             : e18f6120-f651-4aff-bae6-3a0105fa54bf
      tunnel_key          : 42
      type                : logical-router 

      Which means that ovn-controller on one of the chassis will incorrectly try to monitor a different VRF ID, in this case, VRF ID 3 for LR1, from ovn-controller logs:

       2025-10-20T12:06:25.639Z|00048|route_table_notify|INFO|Registering new route table watcher for table 3.

       Expected Behavior: Describe what should happen under normal circumstances.

      The users should be provided with a way to select the same VRF ID that ovn-controller needs to monitor on different chassis, for different GW routers. E.g.:

      ovn-nbctl set logical_router <router> options:dynamic-routing-vrf-id=<ID> 

       Observed Behavior: Explain what actually happens.

      No way to monitor the same VRF ID on different chassis for different OVN GW routers.

       Troubleshooting Actions: Outline the steps taken to diagnose or resolve the issue so far.

       

       Logs: If you collected logs please provide them (e.g. sos report, /var/log/openvswitch/* , testpmd console)


              ovn-qe OVN QE
              ovnteam@redhat.com OVN Team
              Jianlin Shi Jianlin Shi
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: