Hi Numan,
This is quite a large patchset, but I believe I understand it. It
essentially does two things:
1) Deprecates Gateway_Chassis in favor of HA_Chassis_Groups and
HA_Chassis. The benefit of HA_Chassis_Groups is that it allows for
automatic failover of chassis using BFD.
2) Adds external logical switch port type that makes use of
HA_Chassis_Groups to allow for services (such as DHCP) to be offered on
ports outside of the OVN environment. This uses the HA_Chassis_Groups in
order to "bind" the external port to a specific instance of ovn-controller.
The problem I'm having is that I don't really understand what value (1)
is adding. It seems like it's just changing the syntax behind the
existing Gateway_Chassis. You can already specify multiple
Gateway_Chassis for a logical router port, and you can associate a
priority with a Gateway_Chassis, allowing for controlled failover. And
it seems like you could do the same thing for (2) as well. Am I missing
something?
As far as individual critiques of the code, I would recommend
double-checking the spelling of "chassis" throughout the code. Sometimes
it's "chassi" and other times it's "chasss". Also, in
ovn/controller/physical.c, I noticed that the "Gateway_Chassis" is still
referenced in an error message instead of HA_Chassis. Other than that, I
didn't see anything that was jumped out as wrong.
On 2/18/19 2:26 PM, [email protected] wrote:
From: Numan Siddique <[email protected]>
This patch series adds a generic HA chassis group support in OVN
deprecating the existing Gateway chassis support. The final patch
of the series adds the 'external' port support in OVN.
The 'external' port patch addresses the review comments from Han Zhou
which he provided when 'external' port patch was submitted without
the HA support.
A generic HA chassis group support is added so that both the distributed
logical router ports (providing gateway functionality) and 'external'
ports can use it for HA and also to simplify the existing HA code
(which seems to be a bit complicated).
To support HA, BFD is configured on tunnel ports. And even though
'external' ports are expected to be used with the logical
switches having localnet ports (representing physical networks),
BFD is used for now since each chassis uses geneve tunnels with
all other chassis in the OVN cluster.
Numan Siddique (5):
ovn-northd: Reuse the hmaps - datapaths and ports in ovnsb_db_run()
ovn: Add generic HA chassis group
ovn-controller: Make use of ha_chassis_group table to bind the
chassisredirect ports
ovn-northd: Delete the references to gateway_chasss in SB DB
ovn: Support a new Logical_Switch_Port.type - 'external'
NEWS | 3 +
ovn/controller/automake.mk | 4 +-
ovn/controller/bfd.c | 229 +++----
ovn/controller/bfd.h | 11 +-
ovn/controller/binding.c | 31 +-
ovn/controller/binding.h | 1 -
ovn/controller/gchassis.c | 222 -------
ovn/controller/gchassis.h | 71 ---
ovn/controller/ha-chassis.c | 203 ++++++
ovn/controller/ha-chassis.h | 50 ++
ovn/controller/lflow.c | 29 +-
ovn/controller/lflow.h | 3 +-
ovn/controller/ovn-controller.c | 14 +-
ovn/controller/physical.c | 109 ++--
ovn/controller/physical.h | 3 +-
ovn/controller/pinctrl.c | 38 +-
ovn/controller/pinctrl.h | 1 -
ovn/lib/chassis-index.c | 26 +
ovn/lib/chassis-index.h | 4 +
ovn/lib/ovn-util.c | 1 +
ovn/northd/ovn-northd.8.xml | 37 +-
ovn/northd/ovn-northd.c | 779 ++++++++++++++++-------
ovn/ovn-architecture.7.xml | 71 +++
ovn/ovn-nb.ovsschema | 42 +-
ovn/ovn-nb.xml | 132 ++++
ovn/ovn-sb.ovsschema | 43 +-
ovn/ovn-sb.xml | 63 ++
ovn/utilities/ovn-nbctl.8.xml | 41 ++
ovn/utilities/ovn-nbctl.c | 221 +++++++
ovn/utilities/ovn-sbctl.c | 6 +
tests/ovn-northd.at | 396 +++++++++++-
tests/ovn.at | 1031 ++++++++++++++++++++++++++++++-
32 files changed, 3061 insertions(+), 854 deletions(-)
delete mode 100644 ovn/controller/gchassis.c
delete mode 100644 ovn/controller/gchassis.h
create mode 100644 ovn/controller/ha-chassis.c
create mode 100644 ovn/controller/ha-chassis.h
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev