Subject: Re: [PATCH iproute2] ip netns: allow negative nsid

From: Stephen Hemminger <[email-masked]>
Date: Tue, 6 Feb 2018 09:12:47 -0800

On Tue,  6 Feb 2018 16:16:15 +0100
Christian Brauner <[email-masked]> wrote:

> If the kernel receives a negative nsid it will automatically assign the
> next available nsid. In this case alloc_netid() will set min and max to
> 0 for ird_alloc(). And when max == 0 idr_alloc() will interpret this as
> the maxium range, i.e. specific to nsids it will try to find an id in
> the range [0,INT_MAX). This is intentionally supported in the kernel for
> nsids. Commit acbe9118ce8086f765ffb0da15f80c7c01a8903a regressed ip
> netns in that respect although previously the use-case was either
> accidentally supported or opaquely supported such that it triggered the
> original commit. From what I can gather it went as follows before:
> atoi() was called with a string indicating a negative value which caused
> it to return -1 which was passed to the kernel. Let's make it less
> opaque and use get_integer() and set to -1 when a negative nsid was
> requested. This restores the old behavior.
> 
> Signed-off-by: Christian Brauner <[email-masked]>

Rather than negative value, it would be better from user interface
point of view to use a user readable value like "auto" which encapsulates
the kernel behavior.