On Fri, Jul 26, 2019 at 2:00 PM Dumitru Ceara <[email protected]> wrote:
> On Fri, Jul 26, 2019 at 8:21 AM Numan Siddique <[email protected]> > 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' > > Thanks Dumitru for trying it out. I tried compiling the present ovn-org/ovn master branch with --enable-sparse and I see below error *********** trict-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 -Wswitch-bool -Wlogical-not-parentheses -Wsizeof-array-argument -Wbool-compare -Wshift-negative-value -Wduplicated-cond -Wshadow -Wmultistatement-macros -Wcast-align=strict -Werror -Werror -g -O2 -MT ofproto/libofproto_la-ofproto-dpif-ipfix.lo -MD -MP -MF ofproto/.deps/libofproto_la-ofproto-dpif-ipfix.Tpo -c ../../ovs/ofproto/ofproto-dpif-ipfix.c -o ofproto/libofproto_la-ofproto-dpif-ipfix.o ../../ovs/lib/bitmap.h:64:29: error: shift too big (64) for type unsigned long make[4]: *** [Makefile:5611: ofproto/libofproto_la-ofproto-dpif.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... mv -f ofproto/.deps/libofproto_la-ofproto-dpif-mirror.Tpo ofproto/.deps/libofproto_la-ofproto-dpif-mirror.Plo mv -f ofproto/.deps/libofproto_la-ofproto-dpif-monitor.Tpo ofproto/.deps/libofproto_la-ofproto-dpif-monitor.Plo mv -f ofproto/.deps/libofproto_la-ofproto-dpif-rid.Tpo ofproto/.deps/libofproto_la-ofproto-dpif-rid.Plo mv -f ofproto/.deps/libofproto_la-ofproto-dpif-ipfix.Tpo ofproto/.deps/libofproto_la-ofproto-dpif-ipfix.Plo *************** And with the split branch I am seeing below errors when compiled with --enable-sparse. ******* ib -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 -Wswitch-bool -Wlogical-not-parentheses -Wsizeof-array-argument -Wbool-compare -Wshift-negative-value -Wduplicated-cond -Wshadow -Wmultistatement-macros -Wcast-align=strict -Werror -Werror -g -O2 -MT lib/actions.lo -MD -MP -MF $depbase.Tpo -c -o lib/actions.lo ../lib/actions.c &&\ mv -f $depbase.Tpo $depbase.Plo ../ovs/lib/util.h:449:12: error: incorrect type in return expression (different base types) ../ovs/lib/util.h:449:12: expected restricted ovs_be32 ../ovs/lib/util.h:449:12: got unsigned int ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:3426:34: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32 [usertype] network ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:3426:34: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32 [usertype] network ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:3426:34: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32 [usertype] network ../utilities/ovn-nbctl.c:3426:34: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:3426:34: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:3426:34: got restricted ovs_be32 [usertype] network ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:3428:39: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32 [usertype] network ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:3428:39: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32 [usertype] network ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:3428:39: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32 [usertype] network ../utilities/ovn-nbctl.c:3428:39: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:3428:39: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:3428:39: got restricted ovs_be32 [usertype] network ../utilities/ovn-nbctl.c:4610:16: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:4610:16: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:4610:16: got restricted ovs_be32 const [usertype] addr ../utilities/ovn-nbctl.c:4610:39: error: incorrect type in argument 1 (different base types) ../utilities/ovn-nbctl.c:4610:39: expected unsigned int [usertype] __bsx ../utilities/ovn-nbctl.c:4610:39: got restricted ovs_be32 const [usertype] addr make[2]: *** [Makefile:2442: utilities/ovn-nbctl.o] Error 1 *************** I am working on compiling OVN with external OVS sources. I will see if I get the same errors there. Thanks Numan 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 <[email protected]> > 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 > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
