Subject: Re: [PATCH 00/26] IPVS: Add first IPv6 support to IPVS.

From: Patrick McHardy <[email-masked]>
Date: Thu, 12 Jun 2008 17:46:39 +0200

Julius Volz wrote:
> On Thu, Jun 12, 2008 at 3:38 PM, Patrick McHardy <[email-masked]> wrote:
>> Julius Volz wrote:
>>>> I wonder if now would be a good time to bite the bullet and design
>>>> a new interface that is extendable.
>>> If we really have to break it once for IPv6 anyways, it seems like a
>>> good opportunity. Depends on how invasive the changes would need to
>>> be, of course...
>> You don't need to break the old interface, just add an additional
>> one.
> 
> Ok, then we will just keep the old one in parallel for some time.
> 
>>> You probably already have some ideas on what a better interface would
>>> look like? Especially, how to design it for future backwards
>>> compatibility? And would it still use sockopts or rather one of the
>>> other communication mechanisms?
>> I'd suggest genetlink or nfnetlink.
> 
> Ah, that's what I thought... Are there any simple kernel examples with
> userspace counterparts to look at? I know iproute2 uses netlink, but
> it seems like a rather complicated example.

For nfnetlink: net/netfilter/nf_conntrack_netlink.c and
libnfnetlink_conntrack from git.netfilter.org.

> Genetlink seems especially nice, although I couldn't find a general
> explanation of it other than in git history.

I don't have an example for genetlink, but I guess you should
find some in libnl. In this case I guess both would be fine
since ipvs is only loosely tied to the rest of netfilter.