Re: [PATCH 3/9] network namespaces: playing and debugging

2006-08-17 Thread Kirill Korotaev

Temporary code to play with network namespaces in the simplest way.
Do
   exec 7< /proc/net/net_ns
in your bash shell and you'll get a brand new network namespace.
There you can, for example, do
   ip link set lo up
   ip addr list
   ip addr add 1.2.3.4 dev lo
   ping -n 1.2.3.4

Signed-off-by: Andrey Savochkin <[EMAIL PROTECTED]>



NACK, new /proc interfaces are not acceptable.


As you can find from the comment this patch is just for playing
with network namespace.

Kirill

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/9] network namespaces: playing and debugging

2006-08-16 Thread Andrey Savochkin
On Wed, Aug 16, 2006 at 11:22:28AM -0600, Eric W. Biederman wrote:
> Stephen Hemminger <[EMAIL PROTECTED]> writes:
> 
> > On Tue, 15 Aug 2006 18:48:43 +0400
> > Andrey Savochkin <[EMAIL PROTECTED]> wrote:
> >
> >> Temporary code to play with network namespaces in the simplest way.
> >> Do
> >> exec 7< /proc/net/net_ns
> >> in your bash shell and you'll get a brand new network namespace.
> >> There you can, for example, do
> >> ip link set lo up
> >> ip addr list
> >> ip addr add 1.2.3.4 dev lo
> >> ping -n 1.2.3.4
> >> 
> >> Signed-off-by: Andrey Savochkin <[EMAIL PROTECTED]>
> >
> > NACK, new /proc interfaces are not acceptable.
> 
> The rule is that new /proc interfaces that are not process related
> are not acceptable.  If structured right a network namespace can
> arguably be process related.
> 
> I do agree that this interface is pretty ugly there.

This proc interface was a backdoor to play with namespaces without
compiling any user-space programs.

As you wish.
Do you want to have a new clone flag right away?

Andrey
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/9] network namespaces: playing and debugging

2006-08-16 Thread Eric W. Biederman
Stephen Hemminger <[EMAIL PROTECTED]> writes:

> On Tue, 15 Aug 2006 18:48:43 +0400
> Andrey Savochkin <[EMAIL PROTECTED]> wrote:
>
>> Temporary code to play with network namespaces in the simplest way.
>> Do
>> exec 7< /proc/net/net_ns
>> in your bash shell and you'll get a brand new network namespace.
>> There you can, for example, do
>> ip link set lo up
>> ip addr list
>> ip addr add 1.2.3.4 dev lo
>> ping -n 1.2.3.4
>> 
>> Signed-off-by: Andrey Savochkin <[EMAIL PROTECTED]>
>
> NACK, new /proc interfaces are not acceptable.

The rule is that new /proc interfaces that are not process related
are not acceptable.  If structured right a network namespace can
arguably be process related.

I do agree that this interface is pretty ugly there.

Eric
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/9] network namespaces: playing and debugging

2006-08-16 Thread Stephen Hemminger
On Tue, 15 Aug 2006 18:48:43 +0400
Andrey Savochkin <[EMAIL PROTECTED]> wrote:

> Temporary code to play with network namespaces in the simplest way.
> Do
> exec 7< /proc/net/net_ns
> in your bash shell and you'll get a brand new network namespace.
> There you can, for example, do
> ip link set lo up
> ip addr list
> ip addr add 1.2.3.4 dev lo
> ping -n 1.2.3.4
> 
> Signed-off-by: Andrey Savochkin <[EMAIL PROTECTED]>

NACK, new /proc interfaces are not acceptable.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/9] network namespaces: playing and debugging

2006-08-16 Thread Andrey Savochkin
Temporary code to play with network namespaces in the simplest way.
Do
exec 7< /proc/net/net_ns
in your bash shell and you'll get a brand new network namespace.
There you can, for example, do
ip link set lo up
ip addr list
ip addr add 1.2.3.4 dev lo
ping -n 1.2.3.4

Signed-off-by: Andrey Savochkin <[EMAIL PROTECTED]>
---
 dev.c |   20 
 1 files changed, 20 insertions(+)

--- ./net/core/dev.c.vensxdbg   Tue Aug 15 13:46:44 2006
+++ ./net/core/dev.cTue Aug 15 13:46:44 2006
@@ -3597,6 +3597,8 @@ int net_ns_start(void)
if (err)
goto out_register;
put_net_ns(orig_ns);
+   printk(KERN_DEBUG "NET_NS: created new netcontext %p for %s (pid=%d)\n",
+   ns, task->comm, task->tgid);
return 0;
 
 out_register:
@@ -3629,14 +3631,29 @@ static void net_ns_destroy(void *data)
ip_fib_struct_cleanup();
pop_net_ns(orig_ns);
kfree(ns);
+   printk(KERN_DEBUG "NET_NS: netcontext %p freed\n", ns);
 }
 
 void net_ns_stop(struct net_namespace *ns)
 {
+   printk(KERN_DEBUG "NET_NS: netcontext %p scheduled for stop\n", ns);
INIT_WORK(&ns->destroy_work, net_ns_destroy, ns);
schedule_work(&ns->destroy_work);
 }
 EXPORT_SYMBOL(net_ns_stop);
+
+static int net_ns_open(struct inode *i, struct file *f)
+{
+   return net_ns_start();
+}
+static struct file_operations net_ns_fops = {
+   .open   = net_ns_open,
+};
+static int net_ns_init(void)
+{
+   return proc_net_fops_create("net_ns", S_IRWXU, &net_ns_fops)
+   ? 0 : -ENOMEM;
+}
 #endif
 
 /*
@@ -3701,6 +3718,9 @@ static int __init net_dev_init(void)
hotcpu_notifier(dev_cpu_callback, 0);
dst_init();
dev_mcast_init();
+#ifdef CONFIG_NET_NS
+   net_ns_init();
+#endif
rc = 0;
 out:
return rc;
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html