[ovs-git] [ovn-org/ovn] fb3072: Add IP address normalization to ovn-utils.

Mark Michelson noreply at github.com
Wed Jul 29 23:38:38 UTC 2020


  Branch: refs/heads/master
  Home:   https://github.com/ovn-org/ovn
  Commit: fb3072da17133d681245800799b12833163163df
      https://github.com/ovn-org/ovn/commit/fb3072da17133d681245800799b12833163163df
  Author: Mark Michelson <mmichels at redhat.com>
  Date:   2020-07-29 (Wed, 29 Jul 2020)

  Changed paths:
    M lib/ovn-util.c
    M lib/ovn-util.h
    M utilities/ovn-nbctl.c

  Log Message:
  -----------
  Add IP address normalization to ovn-utils.

This moves a couple of existing IP address normalization routines from
ovn-nbctl.c to ovn-util.c. It also adds a new normalization function for
a v46_address. This new function is not used in this commit but will be
used in a future commit in this series.

Signed-off-by: Mark Michelson <mmichels at redhat.com>
Acked-by: Numan Siddique <numans at ovn.org>


  Commit: d7adcce3ee151ee846f370828ba86c55be8460ec
      https://github.com/ovn-org/ovn/commit/d7adcce3ee151ee846f370828ba86c55be8460ec
  Author: Mark Michelson <mmichels at redhat.com>
  Date:   2020-07-29 (Wed, 29 Jul 2020)

  Changed paths:
    M lib/actions.c

  Log Message:
  -----------
  Don't check for writeability of rhs during assignment.

The only condition under which the right-hand side of an assignment
needs to be checked for writeability is if it is an exchange (<->)
operation.

Signed-off-by: Mark Michelson <mmichels at redhat.com>
Acked-by: Numan Siddique <numans at ovn.org>


  Commit: 2054d01247289c554116920806c502e4b5412f21
      https://github.com/ovn-org/ovn/commit/2054d01247289c554116920806c502e4b5412f21
  Author: Mark Michelson <mmichels at redhat.com>
  Date:   2020-07-29 (Wed, 29 Jul 2020)

  Changed paths:
    M include/ovn/expr.h
    M lib/actions.c
    M lib/expr.c

  Log Message:
  -----------
  Add expression writeability scopes.

Logical fields are defined as either being writeable or read-only. There
is no way to make fields writeable only in specific scenarios.

This commit changes the boolean writeability field to a field of flags
indicating contexts where a field is writeable. Any time that nested
actions are used (i.e. actions enclosed in curly braces), a new scope
may be set for the nested action. For this particular commit, no
functionality is changed, and only a "default" scope is added
that mirrors the current setup. A future commit will make use of this
feature.

Signed-off-by: Mark Michelson <mmichels at redhat.com>
Acked-by: Numan Siddique <numans at ovn.org>


  Commit: 6cfb44a76c610ad2c18eb3a25a20c3da37792ba9
      https://github.com/ovn-org/ovn/commit/6cfb44a76c610ad2c18eb3a25a20c3da37792ba9
  Author: Mark Michelson <mmichels at redhat.com>
  Date:   2020-07-29 (Wed, 29 Jul 2020)

  Changed paths:
    M include/ovn/actions.h
    M include/ovn/expr.h
    M lib/actions.c
    M lib/logical-fields.c
    M northd/ovn-northd.c
    M ovn-sb.xml
    M tests/ovn.at

  Log Message:
  -----------
  Used nested actions in ct_commit

ct_commit allows for ct_label and ct_mark to be set within. However,
there are some restrictions with the current implementation:

* It is not possible to address the indiviual bits within the ct_mark or
   ct_label.
* It is not possible to set these to the value of a register. Only
   explicit integer setting can be used.

With this change, ct_commit now can have arbitrary nested actions
inside. This makes it similar to how the "exec" option works in OVS's
ct() action.

ct_commit now also sets a writeability scope so that ct_mark and
ct_label are the only symbols that are writeable. The positive side
effect is that ct_mark and ct_label are no longer writeable except for
inside ct_commit.

In this commit, the only noticeable effect is that it allows for
slightly more expressive setting of ct_label.blocked. A future commit
will take further advantage of this.

Signed-off-by: Mark Michelson <mmichels at redhat.com>
Acked-by: Numan Siddique <numans at ovn.org>


  Commit: 4fdca656857d4a5caeec35ae813888cb9e403e5e
      https://github.com/ovn-org/ovn/commit/4fdca656857d4a5caeec35ae813888cb9e403e5e
  Author: Mark Michelson <mmichels at redhat.com>
  Date:   2020-07-29 (Wed, 29 Jul 2020)

  Changed paths:
    M lib/logical-fields.c
    M northd/ovn-northd.8.xml
    M northd/ovn-northd.c
    M ovn-architecture.7.xml
    M ovn-nb.ovsschema
    M ovn-nb.xml
    M tests/ovn.at
    M tests/system-ovn.at
    M utilities/ovn-nbctl.8.xml
    M utilities/ovn-nbctl.c

  Log Message:
  -----------
  Add ECMP symmetric replies.

When traffic arrives over an ECMP route, there is no guarantee that the
reply traffic will egress over the same route. Sometimes, the nature of
the traffic (or the intervening equipment) means that it is important
for reply traffic to go out the same route it came in.

This commit introduces optional ECMP symmetric reply behavior. If
configured, then traffic to or from the ECMP route will be sent to
conntrack. New incoming traffic over the route will have the source MAC
address and incoming port saved in the ct_label. Reply traffic then uses
this saved information to send the packet back out the same way it came
in.

To facilitate this, a new table was added to the ingress logical router
pipeline. The ECMP_STATEFUL table is responsible for committing to
conntrack and setting the ct_label when it detects new incoming traffic
from the route.

Since ingress pipeline logic on the logical router depends on ct state
of a particular hypervisor, this feature is only usable on gateway
routers.

Signed-off-by: Mark Michelson <mmichels at redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1849683
Acked-by: Numan Siddique <numans at ovn.org>


Compare: https://github.com/ovn-org/ovn/compare/772e04021855...4fdca656857d


More information about the git mailing list