public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: ebiederm@xmission•com (Eric W. Biederman)
To: dilip.daya@hp•com
Cc: netdev@vger•kernel.org
Subject: Re: named network namespace -- setns() with Invalid argument (errno 22)
Date: Tue, 29 Oct 2013 21:33:22 -0700	[thread overview]
Message-ID: <8738njfkdp.fsf@xmission.com> (raw)
In-Reply-To: <1383092184.12859.78.camel@dilip-laptop> (Dilip Daya's message of "Tue, 29 Oct 2013 20:16:24 -0400")

Dilip Daya <dilip.daya@hp•com> writes:

> Hi All,
>
> Is the following intended behavior for adding "nested" named network namespaces ?

Not exactly intended but this is not misbehavior either.

Mostly this is a don't do that then scenario.

Eric


> Steps to reproduce:
>
> # uname -r
> 3.10.1
>
>
> # /sbin/ip -V
> ip utility, iproute2-ss130903
>
>
> Existing network namespaces:
> # ip netns list
> NETNS0
> NETNS1
>
>
> List of named network namespace objects with inode/permissions:
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
>
> Enter existing named network namespace:
> # ip netns exec NETNS0 bash
>
> List network devices for named netns:
> # ls -l /sys/class/net/
> total 0
> lrwxrwxrwx 1 root root 0 Oct 29 12:25 lo -> ../../devices/virtual/net/lo/
>
> List of named network namespace objects with inode/permissions:
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
>
>
> # ip netns add NETNS0a    <<< adding NETNS0a from within NETNS0
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
> 4026532423 -r--r--r-- 1 root root 0 Oct 29 12:28 NETNS0a
> ^^^^^^^^^^ ^^^^^^^^^^
>   inode    permissions
>
>
> # ip netns exec NETNS0a ls -l /sys/class/net/
> total 0
> lrwxrwxrwx 1 root root 0 Oct 29 12:28 lo -> ../../devices/virtual/net/lo
>
> # exit   <<< exiting from NETNS0
>
> Listing from host/default namespace:
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
>     964863 ---------- 1 root root 0 Oct 29 12:28 NETNS0a  <<< NULL permissions
>     ^^^^^^ ^^^^^^^^^^
>
>
> Re-enter NETNS0:
> # ip netns exec NETNS0 bash
> # ls -li /var/run/netns/
> total 0
> 4026532310 -r--r--r-- 1 root root 0 Oct 29 09:11 NETNS0
> 4026532366 -r--r--r-- 1 root root 0 Oct 29 09:13 NETNS1
>     964863 ---------- 1 root root 0 Oct 29 12:28 NETNS0a  <<< NULL permissions
>            ^^^^^^^^^^
>
>
> # ip netns exec NETNS0a ls -l /sys/class/net/
> seting the network namespace "NETNS0a" failed: Invalid argument
>
> => It seems the bash shell that created the nested named netns is the only
>    one that can view/enter the nested named netns. All other attempts from
>    either another bash shell or host/default namespace will get a different 
>    inode with NULL permissions. Once the initial bash shell that created the
>    nested named netns exists the nested netns is rendered unusable due to
>    NULL permissions on its inode. setns() Invalid argument (errno 22) seems
>    to be due to NULL permissions on /var/run/netns/<netnsName> object.
>
>
> Thanks.

  reply	other threads:[~2013-10-30  4:33 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-30  0:16 named network namespace -- setns() with Invalid argument (errno 22) Dilip Daya
2013-10-30  4:33 ` Eric W. Biederman [this message]
2013-10-30 20:54   ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8738njfkdp.fsf@xmission.com \
    --to=ebiederm@xmission$(echo .)com \
    --cc=dilip.daya@hp$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox