mbox series

[ovs-dev,0/6] Introduce the concept of transit router.

Message ID 20241203110853.201377-1-amusil@redhat.com
Headers show
Series Introduce the concept of transit router. | expand

Message

Ales Musil Dec. 3, 2024, 11:08 a.m. UTC
The first two commis are refactors that make the further changes to
physical.c eaiser and server as optimization at the same time to some
extent.

In order to have transit router we have to allow peer port connection
between LR patch port l3gateway types. This allows direct connection
of two LRs, one of the being transit router and the second one being
GW router. This is taken care of commit 3/6. To be fair this can
change can be useful in general even without transit router.

The 4/6 and 6/6 is the actual work needed for transit router. First
is the way to define remote ports for logical router which on it's
own is the main component that results in the transit router. The
LRP can be set remote by setting options:requested-chassis to chassis
that has is-remote=true. Only one chassis is supported at time. The
6/6 is needed in cases when one AZ ARPs port in other AZ, without
this the ARP wouldn't be delivered to the original AZ, which would
result in dropped traffic.

Ales Musil (6):
  physical: Use struct physical_ctx instead of passing args one by one.
  physical: Avoid most of strcmp for port binding type.
  physical: Allow l3gateway and patch port to be peers.
  northd: Introduce the concept of transit routers.
  actions, physical: Make the MC split action generic.
  northd, controller: Flood ARP and NA packet on transit router.

 NEWS                      |   3 +
 controller/lflow.c        |   1 +
 controller/lflow.h        |   4 +
 controller/physical.c     | 569 +++++++++++++++++++++++---------------
 controller/pinctrl.c      |  21 +-
 include/ovn/actions.h     |   7 +-
 lib/actions.c             |  19 +-
 lib/ovn-util.c            |   2 +-
 northd/northd.c           |  43 ++-
 northd/northd.h           |   4 +
 ovn-nb.xml                |  43 +++
 tests/multinode-macros.at |  48 ++++
 tests/multinode.at        | 196 +++++++++++++
 tests/ovn-controller.at   | 168 +++++++++++
 tests/ovn-macros.at       |   1 +
 tests/ovn-northd.at       |  51 ++++
 tests/ovn.at              |  10 +-
 tests/test-ovn.c          |   1 +
 utilities/ovn-trace.c     |   3 +
 19 files changed, 947 insertions(+), 247 deletions(-)