[Openais] IPv6

Steven Dake sdake at mvista.com
Mon Jul 11 11:47:22 PDT 2005


On Mon, 2005-07-11 at 08:56 +0100, Patrick Caulfield wrote:
> I've been looking at the core of openAIS with a view to possibily using it as
> the core the a new version of Red Hat cluster manager's CMAN. The only real
> blocker seems to be that the openAIS code as it stands looks very tied to IPv4,
> and we need to deliver IPv6 support.
> 
> Do you have a feel for how easy/hard it would be to add ipv6 support to the
> totem core part of the code? If it's not too much over the "getting to know it"
> stage I might be interested in taking this on.
> 

This would be a wonderful contribution and is needed.

Initially when the totem code was developed, I wanted to stay simple so
I could focus on the protocol instead of ipv4/ipv6 issues.  I always
thought later the ipv6 functionality could be added in.

I'd estimate making totem work for both ipv4 and ipv6 networks for
someone unfamiliar with the protocol would take about 60 hours of dev
time.  The biggest problem is that addresses are used all over the code
are "in_addr", or a 32 bit field for the internet address.  A new data
structure is required which has a "type" field (AF_INET, AF_INET6) and a
128 bit field for the either ipv4 or ipv6 address.  This data structure
would have to replace almost all uses of in_addr.  The code accessing
these data structures would have to be adapted to do the right thing
with the data structure.  There are alot of assignments of addresses
which would have to be changed to an assignment function.  There are
several comparisons of addresses which would probably have to be changed
to a function to determine if the addresses match.  The code that
selects the network interface on which to bind to would have to be
changed slightly to support ipv6 addresses.  The code that binds to the
multicast address would have to change slightly to bind to an ipv4 or
ipv6 multicast address.  The configuration code needs modification to
read ipv4 or ipv6 addresses and allow the user to specify which kind of
address is being specified.  totempg.c uses addresses to build
fragmented packets into one larger packet.  That code would need some
address fixups like totemsrp.  Finally there are a few uses of the
address field throughout the rest of openais AIS services, but those are
minor and I can fix those up if you have a base totem ipv4/ipv6 support.

That about sums it up.  We would love to have such a patch.  If you want
to take it on, I can guide you through the code or questions you may
have.  The first step is to read the totem single ring protocol paper to
get a basic understanding of the protocol.

Regards
-steve





More information about the Openais mailing list