On Tue, 6 Feb 2018 16:16:15 +0100 Christian Brauner <christian.brau...@ubuntu.com> 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 <christian.brau...@ubuntu.com> 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.