On 1/20/21 10:10 PM, Mark Michelson wrote:
OVN developers have had isssues with the current method by which OVS
source code is used by OVN.
* There is no way to record the minimum commit/version of OVS to use
when compiling OVN.
* When debugging issues, bisecting OVN commits may also requires
simultaneously changing OVS commits. This makes for multiple moving
targets to try to track.
* Performance improvements made to OVS libraries and OVSDB may benefit
OVN. However, there's no way to encourage the use of the improved OVS
source.
By using a submodule, it allows for OVN to record a specific commit of
OVS that is expected to be used.
Signed-off-by: Mark Michelson <[email protected]>
---
Hi Mark,
Many thanks for working on this!
Should we also modify the CI jobs in .github/workflows/test.yml to run
OVN CI when compiled against the new OVS submodule? Right now
linux-build.sh always checks out upstream OVS master branch.
I guess it's also interesting to run (maybe just one job, e.g., clang)
against upstream OVS master branch.
.gitmodules | 3 +++
Documentation/intro/install/general.rst | 19 ++++++++++++++++---
Makefile.am | 20 ++++++++++----------
acinclude.m4 | 2 +-
build-aux/initial-tab-whitelist | 1 +
ovs | 1 +
6 files changed, 32 insertions(+), 14 deletions(-)
create mode 100644 .gitmodules
create mode 160000 ovs
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000..5c36a018f
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "ovs"]
+ path = ovs
+ url = [email protected]:openvswitch/ovs.git
Wouldn't it be better to use https://github.com/openvswitch/ovs.git instead?
diff --git a/Documentation/intro/install/general.rst
b/Documentation/intro/install/general.rst
index 65b1f4a40..1f19baec4 100644
--- a/Documentation/intro/install/general.rst
+++ b/Documentation/intro/install/general.rst
@@ -66,6 +66,9 @@ To compile the userspace programs in the OVN distribution,
you will
need the following software:
- Open vSwitch (https://docs.openvswitch.org/en/latest/intro/install/).
+ Open vSwitch is included as a submodule in the OVN source code. It is
+ kept at the minimum version required in order for OVN to compile. See
What if we rephrase this to "in order for OVN to work properly." or
something similar? I'm thinking for example of the case when, even
though compilation works fine, OVN may crash because of a bug in the OVS
submodule's version of the libraries.
+ below for instructions about how to use a different OVS source location.
- GNU make
@@ -153,9 +156,19 @@ Before configuring OVN, clone, configure and build Open vSwitch.
Configuring
-----------
-Configure the package by running the configure script. You need to
-invoke configure with atleast the argument --with-ovs-source.
-For example::
+OVN requires Open vSwitch source code to be present in order to compile.
+The easiest way to fulfill this requirement is to use the included ovs
+submodule. After cloning the OVN source, run the following to initialize
+the ovs submodule::
+
+ $ git submodule udpate --init
s/udpate/update
+
+Then configure the package by running the configure script::
We should also mention that we need to build OVS inside the submodule.
Regards,
Dumitru
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev