Mailing List Archive

Guidelines contributing to XAPI codebase
Hello all

We have a bunch of code changes we want to submit to XAPI so that it natively supports our data path implementation (Contrail vRouter) - which is similar to OVS (More information in http://opencontrail.org/)

We would like to understand the following
* What is the repo to which we have to submit the changes? (https://github.com/xapi-project/ ??)
* What is the recommended development environment for XAPI developers out there? How do they build and test the code.

Sorry if this information is already available, just that I was not able to get to it.

Ranjeet
Re: Guidelines contributing to XAPI codebase [ In reply to ]
Hi Ranjeet,

On 26/02/14 19:44, Ranjeet R wrote:
> Hello all
> We have a bunch of code changes we want to submit to XAPI so that it
> natively supports our data path implementation (Contrail vRouter) –
> which is similar to OVS (More information in _http://opencontrail.org/_)
> We would like to understand the following
>
> * What is the repo to which we have to submit the changes?
> (_https://github.com/xapi-project/_ ??)

Network configuration within xapi is done by the "xcp-networkd"
component: [cc:d Rob, who maintains it]

https://github.com/xapi-project/xcp-networkd

> * What is the recommended development environment for XAPI developers
> out there? How do they build and test the code.

For building the latest versions, I normally install the build
dependencies as RPMs, built from here:

https://github.com/xenserver/xenserver-core

I normally build xapi itself, rather than xcp-networkd but I think you
should be able to:

1. build the RPMs (follow the instructions in the
xenserver/xenserver-core/README.md)
2. add the repo to your CentOS host
3. "yum-builddep xcp-networkd" to install the dependencies
4. checkout the latest release tag "0.9.3" of the xcp-networkd repo and
build that

Looking at the differences between "master" and "0.9.3", it looks like
there is a build fix in "0.9.3"

-module D = Debug.Make(struct let name = "network_monitor_thread" end)
+module D = Debug.Debugger(struct let name = "network_monitor_thread" end)

(a module has been renamed)

and it looks like master has some experimental support for netlink:

>>>>
commit 417bf4b4a1213a093c3c3fd5a0fb4ac3efbcce7c
Author: Rob Hoes <rob.hoes@citrix.com>
Date: Wed Jul 3 17:29:31 2013 +0100

Get network stats through netlink rather than from /proc

This add a dependency to the netlink opam package, and the libnl-3
and libnl-route-3 libraries.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
<<<<

-- but this requires a backport of libnl-3.

I think you could probably base your branch from 0.9.3 in the first
instance, and it will be very easy to port over to master.

Cheers,
Dave

_______________________________________________
Xen-api mailing list
Xen-api@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api