[ovs-git] [ovn-org/ovn] 7b33b8: ofctrl: change ofctrl_dup_flow to module internal ...

Han Zhou noreply at github.com
Wed Sep 9 21:04:05 UTC 2020


  Branch: refs/heads/branch-20.06
  Home:   https://github.com/ovn-org/ovn
  Commit: 7b33b8c0dd395d3dcca6b95245b98c1094473a2a
      https://github.com/ovn-org/ovn/commit/7b33b8c0dd395d3dcca6b95245b98c1094473a2a
  Author: Han Zhou <hzhou at ovn.org>
  Date:   2020-09-09 (Wed, 09 Sep 2020)

  Changed paths:
    M controller/ofctrl.c
    M controller/ofctrl.h

  Log Message:
  -----------
  ofctrl: change ofctrl_dup_flow to module internal function

Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Han Zhou <hzhou at ovn.org>


  Commit: fd312e23fb45c56ffcbb242381619169ef78c580
      https://github.com/ovn-org/ovn/commit/fd312e23fb45c56ffcbb242381619169ef78c580
  Author: Han Zhou <hzhou at ovn.org>
  Date:   2020-09-09 (Wed, 09 Sep 2020)

  Changed paths:
    M tests/ovn.at

  Log Message:
  -----------
  ovn.at: Fix AT for conjunction case.

1. Fix flows priorities in the comments.
2. Clean up hv1.

Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Han Zhou <hzhou at ovn.org>


  Commit: 015a0358910aca6cee52e6e24464f975b04c7526
      https://github.com/ovn-org/ovn/commit/015a0358910aca6cee52e6e24464f975b04c7526
  Author: Han Zhou <hzhou at ovn.org>
  Date:   2020-09-09 (Wed, 09 Sep 2020)

  Changed paths:
    M controller/lflow.c

  Log Message:
  -----------
  lflow.c: No need to remove flows for adding new datapath.

When handling a new datapath, the flows should have never existed, so there is
no need to remove them before adding. Although it seems not harmful to do it,
the implementation was not complete. To remove existing flows, it also need to
remove the flow references. Because the flows never existed, so this wasn't a
problem. So, instead of fixing the incomplete flow removing, this patch simply
avoid the unnecessary operation.

Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Han Zhou <hzhou at ovn.org>


  Commit: ae28bd54b9eb07ff8d346f795f94853543c9988e
      https://github.com/ovn-org/ovn/commit/ae28bd54b9eb07ff8d346f795f94853543c9988e
  Author: Han Zhou <hzhou at ovn.org>
  Date:   2020-09-09 (Wed, 09 Sep 2020)

  Changed paths:
    M controller/lflow.c
    M controller/ofctrl.c
    M controller/ofctrl.h
    M tests/ovn.at

  Log Message:
  -----------
  ovn-controller: Fix conjunction handling with incremental processing.

When translating lflows to OVS flows, different lflows can refer to same OVS
flow as a result of calling ofctrl_add_or_append_flow(), particularly for
conjunction combinding. However, the implementation doesn't work with
incremental processing, because when any of the lflows are removed, we rely on
the lflow's uuid to remove the OVS flow in the desired flow table. Currently
only one single lflow uuid is maintained in the desired flow, so removing one
of the lflows that references to the same desired flow resulted in wrong
behavior: either removing flows that are used by other lflows, or the existing
flows are not updated (part of the conjunction actions should be removed from
the flow).

To solve the problem, this patch maintains the cross reference (M:N) between
lflows (and other sb objects) and desired flows, and handles the flow removal
and updates with a flood-removal and re-add approach.

Fixes: e659bab31a9 ("Combine conjunctions with identical matches into one flow.")
Cc: Mark Michelson <mmichels at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Han Zhou <hzhou at ovn.org>


Compare: https://github.com/ovn-org/ovn/compare/b97f41950943...ae28bd54b9eb


More information about the git mailing list