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

ovn-northd incremental processing - handle logical switch creation/deletion

    • Icon: Epic Epic
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • OVN
    • ovn-northd incremental processing - handle logical switch creation/deletion
    • False
    • Hide

      None

      Show
      None
    • False
    • Hide

      Please mark each item below with ( / ) if completed or ( x ) if incomplete:

      ( ) The acceptance criteria defined below are met.

      Given a system administrator managing a network with ovn-northd,

      When a logical switch is created or deleted,

      Then the ovn-northd incremental processing should handle the change without triggering a full lflow recompute. Only the affected logical flows should be updated and the operation should complete successfully without errors.


      ( ) The epics work is available in a downstream build (nightly/async or other)


      ( ) Test coverage is available in downstream CI if applicable


      ( ) All cards under the epic have been moved to Done


      ( ) Failed Test Plans have bugs added as children to the epic/feature.

      Show
      Please mark each item below with ( / ) if completed or ( x ) if incomplete: ( ) The acceptance criteria defined below are met. Given a system administrator managing a network with ovn-northd, When a logical switch is created or deleted, Then the ovn-northd incremental processing should handle the change without triggering a full lflow recompute. Only the affected logical flows should be updated and the operation should complete successfully without errors. ( ) The epics work is available in a downstream build (nightly/async or other) ( ) Test coverage is available in downstream CI if applicable ( ) All cards under the epic have been moved to Done ( ) Failed Test Plans have bugs added as children to the epic/feature.
    • FDP-759 - Improve ovn-northd incremental processing for network topology changes.
    • rhel-10
    • rhel-net-ovn
    • 67% To Do, 0% In Progress, 33% Done
    • ssg_networking
    • FDP 24.H, FDP 25.A, OVN FDP Sprint 6, OVN FDP Sprint 7, OVN FDP Sprint 8
    • 5

      This epic tracks all the effort needed to deliver the solution related to the feature request described below.
      Currently northd incremental processing fails when logical switches are added/removed.  The I-P node dependency is:

      NB.Logical_Switch -> en_northd -> en_lflow

      When a new switch is created/deleted the "en_northd" input handler for logical switches is called:

      bool
      northd_handle_ls_changes(struct ovsdb_idl_txn *ovnsb_idl_txn,
                               const struct northd_input *ni,
                               struct northd_data *nd)
      {
          const struct nbrec_logical_switch *changed_ls;
          struct northd_tracked_data *trk_data = &nd->trk_data;    NBREC_LOGICAL_SWITCH_TABLE_FOR_EACH_TRACKED (changed_ls,
                                                   ni->nbrec_logical_switch_table) {
              if (nbrec_logical_switch_is_new(changed_ls) ||
                  nbrec_logical_switch_is_deleted(changed_ls)) {
                  goto fail;
              }
      ...
      fail:
          destroy_northd_data_tracked_changes(nd);
          return false;
      }

      which in turn causes "en_lflow" handler for en_northd data changes to fail:

      bool
      lflow_northd_handler(struct engine_node *node,
                           void *data)
      {
          struct northd_data *northd_data = engine_get_input_data("northd", node);
          if (!northd_has_tracked_data(&northd_data->trk_data)) {
              return false;
          }
      ... 

      This triggers a full recompute of the "en_lflow" node which can be costly at scale.

              lorenzobianconi lorenzo bianconi
              dceara@redhat.com Dumitru Ceara
              OVN
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: