[ovs-dev] OVS / OVN split - post 2.12

Dumitru Ceara dceara at redhat.com
Fri Jul 26 08:30:17 UTC 2019


On Fri, Jul 26, 2019 at 8:21 AM Numan Siddique <nusiddiq at redhat.com> wrote:
>
> Hello All,
>
> The split work is almost done and we have pushed it to the ovn repo branch
> for now - https://github.com/ovn-org/ovn/commits/ovs_ovn_split
> If some one is interested, please try it out and let us know any comments
> or issues.

Hi Numan,

It looks like the ovs_ovn_split branch doesn't build:

# git clone https://github.com/ovn-org/ovn.git ovn
# cd ovn
# ./boot.sh
# ./configure --enable-Werror --enable-sparse
# make
make  all-recursive
make[1]: Entering directory `/root/ovn'
Making all in ovs
make[2]: Entering directory `/root/ovn/ovs'
make  all-recursive
make[3]: Entering directory `/root/ovn/ovs'
Making all in datapath
make[4]: Entering directory `/root/ovn/ovs/datapath'
make[5]: Entering directory `/root/ovn/ovs/datapath'
make[5]: Leaving directory `/root/ovn/ovs/datapath'
make[4]: Leaving directory `/root/ovn/ovs/datapath'
make[4]: Entering directory `/root/ovn/ovs'
make[4]: Leaving directory `/root/ovn/ovs'
make[3]: Leaving directory `/root/ovn/ovs'
make[2]: Leaving directory `/root/ovn/ovs'
make[2]: Entering directory `/root/ovn'
depbase=`echo lib/acl-log.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ./libtool  --tag=CC   --mode=compile env REAL_CC="gcc
-std=gnu99" CHECK="sparse -Wsparse-error -I ./include/sparse -m64 -I
/usr/local/include  " cgcc -target=x86_64 -DHAVE_CONFIG_H -I.    -I
./ovs/include -I ./ovs/include -I ./ovs/lib -I ./ovs/lib -I ./ovs -I
./ovs -I ./lib -I ./lib    -Wstrict-prototypes -Wall -Wextra
-Wno-sign-compare -Wpointer-arith -Wformat -Wformat-security
-Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align
-Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes
-Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror
-Werror   -g -O2 -MT lib/acl-log.lo -MD -MP -MF $depbase.Tpo -c -o
lib/acl-log.lo lib/acl-log.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  env "REAL_CC=gcc -std=gnu99" "CHECK=sparse
-Wsparse-error -I ./include/sparse -m64 -I /usr/local/include  " cgcc
-target=x86_64 -DHAVE_CONFIG_H -I. -I ./ovs/include -I ./ovs/include
-I ./ovs/lib -I ./ovs/lib -I ./ovs -I ./ovs -I ./lib -I ./lib
-Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith
-Wformat -Wformat-security -Wswitch-enum -Wunused-parameter
-Wbad-function-cast -Wcast-align -Wstrict-prototypes
-Wold-style-definition -Wmissing-prototypes
-Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror
-Werror -g -O2 -MT lib/acl-log.lo -MD -MP -MF lib/.deps/acl-log.Tpo -c
lib/acl-log.c -o lib/acl-log.o
./ovs/include/openvswitch/nsh.h:372:11: error: symbol '__v' shadows an
earlier one
./ovs/include/openvswitch/nsh.h:372:11: originally declared here
./ovs/include/openvswitch/nsh.h:372:11: error: symbol '__x' shadows an
earlier one
./ovs/include/openvswitch/nsh.h:372:11: originally declared here
./ovs/include/openvswitch/nsh.h:383:11: error: symbol '__v' shadows an
earlier one
./ovs/include/openvswitch/nsh.h:383:11: originally declared here
./ovs/include/openvswitch/nsh.h:383:11: error: symbol '__x' shadows an
earlier one
./ovs/include/openvswitch/nsh.h:383:11: originally declared here
make[2]: *** [lib/acl-log.lo] Error 1

Building ovs master works fine for me:

# git clone https://github.com/openvswitch/ovs.git ovs
# cd ovs
# ./boot.sh
# ./configure --enable-Werror --enable-sparse
# make
<snip>
mv tests/system-afxdp-testsuite.tmp tests/system-afxdp-testsuite
mv tests/system-kmod-testsuite.tmp tests/system-kmod-testsuite
mv tests/system-userspace-testsuite.tmp tests/system-userspace-testsuite
touch -c manpage-check
mv tests/testsuite.tmp tests/testsuite
make[2]: Leaving directory `/root/ovs'
make[1]: Leaving directory `/root/ovs'

Regards,
Dumitru

>
> We are planning to push the changes to the master branch hopefully Friday
> if everything goes fine.
>
> Thanks
> Numan
>
>
> On Fri, Jul 26, 2019 at 12:05 AM Mark Michelson <mmichels at redhat.com> wrote:
>
> > On 7/25/19 12:37 PM, Ilya Maximets wrote:
> > > Hi.
> > >
> > > I have a question regarding the split.
> > > Sorry if it's obvious from the RFC splitting code which I didn't look at.
> > >
> > > The question is:
> > > How the patches for the common data structures (lists, hash maps) will be
> > > applied to OVN? Will we need to post same patch for both repositories in
> > the
> > > future if it changes/fixes common libraries? Or all this code will be
> > hosted
> > > only in OVS repo and will be included like a submodule or something like
> > that?
> > >
> > > Best regards, Ilya Maximets.
> >
> > Hi Ilya,
> >
> > OVN will be a separate repo from OVS. Initially, OVS will be a subtree
> > of OVN, but soon, we will want to be able to build OVN while having a
> > completely separate OVS on the system. When all is said and done, it
> > should be possible to build OVN as long as you have, say, an ovs-devel
> > package installed on your system.
> >
> > I think the answer to your question is that as an OVS developer, if you
> > make a change to a core component, you only need to post the change to
> > the OVS repo.
> >
> >  From an OVN developer's perspective, if an OVN feature/bugfix requires
> > a parallel change to be made to a core OVS library, then the OVN
> > developer will need to post the library change to OVS as well as the
> > usage of that change to OVN. As long as OVS is a subtree of OVN, it's
> > just a matter of ensuring the subtree is kept up to date. However, once
> > OVS is built separately, then configure-time checks of OVS features or
> > minimum version checks will need to be added to OVN to ensure that the
> > code can build properly.
> >
> > This approach should place most of the burden of OVN compatibility with
> > OVS on OVN developers rather than OVS developers.
> > >
> > >> Numan and I have discussed this, and we're planning to perform the split
> > >> tomorrow July 25. Numan will be applying the commits he referenced below
> > >> to the ovn-org branch to get it up to date. I will be submitting a
> > >> review for OVS to remove all of the OVN code, documentation, etc. from
> > it.
> > >>
> > >> If there are any reasons why we should hold off on this, please mention
> > >> them as soon as possible.
> > >>
> > >> Thanks
> > >>
> > >> On 7/22/19 2:35 PM, Numan Siddique wrote:
> > >>> Hi Ben, Mark and All,
> > >>>
> > >>> Now that branch 2.12 is created, shall we proceed with the OVS/OVN
> > split ?
> > >>>
> > >>> In order to do the split we need to do the below tasks
> > >>>
> > >>> In ovn-org/ovn repo
> > >>> Step 1. Sync the ovs subtree to the latest (from the OVS repo).
> > >>> 2. Delete all the ovn related code from the root dir. Right now there
> > is
> > >>> no history for the OVN files in the ovn-org/ovn repo
> > >>> 3. Copy OVN files from openvswitch/ovs repo using git-filter-branch.
> > >>> This will preserver the history.
> > >>> 4. Sync the test files from ovs subtree so that tests pass.
> > >>>
> > >>> During this period its better to freeze merging OVN related patches in
> > >>> the OVS repo.
> > >>> And finally delete the OVN related code from the OVS repo.
> > >>>
> > >>> I have done a PoC here -
> > >>> https://github.com/numansiddique/ovn/commits/ovn_sync_from_ovs_v3/p4
> > >>> All the relates commits can be found here.
> > >>>
> > >>>
> > >>> Does these steps seem fine ? Any concerns ?
> > >>> If this seems fine, can we choose a date to start this process ?
> > >>>
> > >>> Thanks
> > >>> Numan
> > >>>
> > >
> >
> >
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list