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

From: Patrick McHardy <[email-masked]>
Date: Wed, 18 Jun 2008 16:30:23 +0200

Julius Volz wrote:
> On Wed, Jun 18, 2008 at 4:19 PM, Patrick McHardy <[email-masked]> wrote:
>>> 2) for the service flags, only one bit is set from userspace
>>> (persistent/nonpersistent service). So this might be not too bad to
>>> have as a single Netlink flag attribute.
>> And this bit can't be unset (or if it currently can't be,
>> it also wouldn't make sense to be able to unset it)?
> 
> It can get unset when editing a persistent service to be
> non-persistent, so you would still have to include it in a change
> request that doesn't want to unset it. Since it's only one flag
> though, it didn't seem too bad to me.

The problem is that its racy. You have to query the current
state before deciding whether to send it or not. And another
process might change it in between. An additional downside
is the overhead for the query itself.

> An alternative (also, in case of more flags in the future) would be to
> put flags into a nested attribute and if this is not supplied from
> userspace during an edit operation, the flags will be left untouched.

Then you can't unset them. I'd simply use the flags/mask
scheme.