All of lore.kernel.org
 help / color / mirror / Atom feed
From: Serge Hallyn <serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
To: Libo Chen <clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
Cc: hadi-fAAogVwAN2Kw5LPnMra/2Q@public.gmane.org,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	karma-sWkBwLop/e8RbODiWk9XIg@public.gmane.org,
	takano-ryousei-XSdjUN4cZ6fPDbFq/vQRIQ@public.gmane.org,
	caglar-mM0DFpta8ko@public.gmane.org,
	dlezcano-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org,
	"zhangwei(Jovi)"
	<jovi.zhangwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
	stgraber-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org,
	james.hunt-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org
Subject: Re: a work for lxc monitor network interface
Date: Wed, 22 Jan 2014 08:17:36 -0600	[thread overview]
Message-ID: <20140122141736.GA18507@tp> (raw)
In-Reply-To: <52CE9620.9040108-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>

Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org):
> On 2014/1/7 0:55, Serge Hallyn wrote:
> > Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org):
> >> On 2013/12/19 4:16, Serge Hallyn wrote:
> >>> Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org):
> >>>> Hello LXC experts,
> >>>>
> >>>> 	lxc tool can set network interface by config, but it is static.
> >>>> In some scene, the network interface will be dynamic created on the host
> >>>> and need be shared to container, but it is not suitable to do by hand,
> >>>> so lxc can not work for it.
> >>>>
> >>>> 	I also know lxc_user_nic() can only do a part of work, but we have
> >>>> two more work:
> >>>> 1. grasp the netlink/uevent message about network interface online
> >>>> 2. config interface attached to container ip address .
> >>>>
> >>>> so it can not fully meet my requirements.
> >>>>
> >>>> 	I want there is a monitor can work for network interface hotplug.
> >>>>
> >>>> 1. read config form config file, it describe monitor which network interface
> >>>>    and what's the network configuration
> >>>> 2. grasp the netlink/uevent message about network interface online on the host
> >>>> 3. create veth pair, put veth attach to container and bridge
> >>>> 4. config the veth attached to container ipaddr
> >>>>
> >>>> 			
> >>>>          	          netlink  create veth pair
> >>>> monitor ---> read config  -------> veth0 attach to container --> config ipaddr
> >>>> 				   veth1 attach to bridge
> >>>>
> >>>> monitor may be the lxc-start or a child forked by lxc-start.
> >>>>
> >>>>
> >>>>  Is this reasonable?  If so, I'd like to do it.
> >>>
> >>> I'm not quite clear on what you're trying to do, but it sounds like you
> >>> could use a udev rule, triggered on the nic creation, and use lxc-device
> >>> from inside that rule to attach the nic to the container.
> >>>
> >> hi Serge,
> >>
> >> using udev rule is a good idea, but not common. for instance android uses ueventd and
> >> busybox uses mdev, sometimes nothing at all.
> >>
> >> so how about lxc itself provides this feature?
> > 
> > Just one more question - what would the configuration look like?
> > Especially, what would the monitor be looking for?  How would it
> > recognzie a link that came up as being the one which the container
> > should be attached to?  (We're constantly reminded that the names
> > cannot be unambiguously used to identify a physical link)
> > 
> 
> My idea is this, may not reason.
> 
> 1. I would like to add a field 'lxc.network.dynamic' which describes a static
> or dynamic nic in config file.
> 
> if lxc.network.dynamic = false(default false), lxc should go as before,else it means
> the following device will appear in a future time.
> 
> e.g.
> lxc.network.dynamic = true
> lxc.network.type = veth   // need veth mode to container
> lxc.network.flags = up
> lxc.network.link = br0    // be attached to
> lxc.network.name = ppp0   //monitor nic ppp0
> 
> e.g.
> lxc.network.dynamic = true
> lxc.network.type = phys   //  direct to container
> lxc.network.flags = up
> lxc.network.name = ppp0   //monitor nic ppp0
> 
> 
> 2.the monitor should look for uevent, since uevent message includes interface name like:
> 
> add@/devices/virtual/net/veth5
> ACTION=add
> DEVPATH=/devices/virtual/net/veth5
> SUBSYSTEM=net
> INTERFACE=veth5   ****
> IFINDEX=19
> SEQNUM=12292

Since most hosts already have a well-understood daemon watching uevents,
udev/mdev/probably others, I still think it would be better for users
who want this behavior to write a udev rule which fires off
lxc-device.

In your design, would there be one long-running daemon for all
containers, which each container registers nics with, or a
daemon per container?

-serge

  parent reply	other threads:[~2014-01-22 14:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-18  8:36 a work for lxc monitor network interface Libo Chen
     [not found] ` <52B15E7B.8080009-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-12-18 20:16   ` Serge Hallyn
2014-01-06  8:38     ` Libo Chen
     [not found]       ` <52CA6B69.1000402-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2014-01-06 16:55         ` Serge Hallyn
2014-01-09 12:29           ` Libo Chen
     [not found]             ` <52CE9620.9040108-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2014-01-22 14:17               ` Serge Hallyn [this message]
2014-01-23  1:59                 ` Libo Chen

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=20140122141736.GA18507@tp \
    --to=serge.hallyn-gewih/nmzzlqt0dzr+alfa@public.gmane.org \
    --cc=caglar-mM0DFpta8ko@public.gmane.org \
    --cc=clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=dlezcano-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org \
    --cc=hadi-fAAogVwAN2Kw5LPnMra/2Q@public.gmane.org \
    --cc=james.hunt-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org \
    --cc=jovi.zhangwei-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=karma-sWkBwLop/e8RbODiWk9XIg@public.gmane.org \
    --cc=stgraber-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org \
    --cc=takano-ryousei-XSdjUN4cZ6fPDbFq/vQRIQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.