* Q: use vlan in container
@ 2013-11-28 6:17 Libo Chen
[not found] ` <5296E003.80804-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Libo Chen @ 2013-11-28 6:17 UTC (permalink / raw)
To: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
Cc: serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA, LKML, David Miller
Hello LXC experts,
I meet a problem. When using vlan as network device in suse11 system container,
I can not use halt to stop this container. It hung on "eth0 is still used from interfaces eth0" in cycle.
The config file:
lxc.network.type = vlan
lxc.network.flags = up
lxc.network.link = eth0
lxc.network.name = eth0
lxc.network.vlan.id = 1301
lxc.network.ipv4 = 128.5.131.100/24
The reason is in the shell command /sbin/ifdown, see below:
######################################################################
# Shut down depending interfaces
#
# Check if there are interfaces which depend on this interface. If yes these
# have to be shut down first.
# For example these might be bonding or vlan interfaces. Note that we don't
# catch all types of depending interfaces currently. See function
# 'get_depending_ifaces' in file 'functions' for details.
#
test "$SCRIPTNAME" = ifdown && DEP_IFACES=`get_depending_ifaces $INTERFACE`
if [ "$?" = 0 -a "$NODEPS" != yes ] ; then
message "`printf " %-9s is still used from interfaces %s" \
$INTERFACE "$DEP_IFACES"`"
for DI in $DEP_IFACES; do
ifdown $DI -o $OPTIONS
done
message "`printf " %-9s now going down itself" $INTERFACE`"
# check if iface is (still) avaliable
# [bonding master may go down itself
# while the last slave gets removed]
if ! is_iface_available $INTERFACE; then
exit $R_SUCCESS
fi
fi
$DEP_IFACES is also eth0 in this scene, so ifdown will call ifdown again and again.
if we set lxc.network.name = eth1, it will be ok, so can we add a judgment to make
lxc.network.link and lxc.network.name are not equal in lxc-start command.
simple implement like:
if [ lxc.network.type == vlan ] ; then
if [ lxc.network.link == lxc.network.name ] ; then
return false
fi
fi
Is it reasonable? or any other way to achieve this?
^ permalink raw reply [flat|nested] 5+ messages in thread[parent not found: <5296E003.80804-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>]
* Re: Q: use vlan in container [not found] ` <5296E003.80804-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> @ 2013-11-29 5:05 ` Serge Hallyn 2013-11-29 6:40 ` Libo Chen 0 siblings, 1 reply; 5+ messages in thread From: Serge Hallyn @ 2013-11-29 5:05 UTC (permalink / raw) To: Libo Chen Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, LKML, David Miller Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org): > Hello LXC experts, > > I meet a problem. When using vlan as network device in suse11 system container, > I can not use halt to stop this container. It hung on "eth0 is still used from interfaces eth0" in cycle. > > The config file: > > lxc.network.type = vlan > lxc.network.flags = up > lxc.network.link = eth0 > lxc.network.name = eth0 > lxc.network.vlan.id = 1301 > lxc.network.ipv4 = 128.5.131.100/24 > > > The reason is in the shell command /sbin/ifdown, see below: > > ###################################################################### > # Shut down depending interfaces > # > # Check if there are interfaces which depend on this interface. If yes these > # have to be shut down first. > # For example these might be bonding or vlan interfaces. Note that we don't > # catch all types of depending interfaces currently. See function > # 'get_depending_ifaces' in file 'functions' for details. > # > test "$SCRIPTNAME" = ifdown && DEP_IFACES=`get_depending_ifaces $INTERFACE` > if [ "$?" = 0 -a "$NODEPS" != yes ] ; then > message "`printf " %-9s is still used from interfaces %s" \ > $INTERFACE "$DEP_IFACES"`" > for DI in $DEP_IFACES; do Should the proper fix be to fix this script so that it doesn't call ifdown recursively if $DI = $INTERFACE ? > ifdown $DI -o $OPTIONS > done > > message "`printf " %-9s now going down itself" $INTERFACE`" > # check if iface is (still) avaliable > # [bonding master may go down itself > # while the last slave gets removed] > if ! is_iface_available $INTERFACE; then > exit $R_SUCCESS > fi > fi > > > $DEP_IFACES is also eth0 in this scene, so ifdown will call ifdown again and again. > > if we set lxc.network.name = eth1, it will be ok, so can we add a judgment to make > lxc.network.link and lxc.network.name are not equal in lxc-start command. > > simple implement like: > > if [ lxc.network.type == vlan ] ; then > if [ lxc.network.link == lxc.network.name ] ; then > return false > fi > fi > > > Is it reasonable? or any other way to achieve this? > > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Q: use vlan in container 2013-11-29 5:05 ` Serge Hallyn @ 2013-11-29 6:40 ` Libo Chen [not found] ` <529836CD.1080900-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Libo Chen @ 2013-11-29 6:40 UTC (permalink / raw) To: Serge Hallyn Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, LKML, David Miller, zhangwei(Jovi) On 2013/11/29 13:05, Serge Hallyn wrote: > Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org): >> Hello LXC experts, >> >> I meet a problem. When using vlan as network device in suse11 system container, >> I can not use halt to stop this container. It hung on "eth0 is still used from interfaces eth0" in cycle. >> >> The config file: >> >> lxc.network.type = vlan >> lxc.network.flags = up >> lxc.network.link = eth0 >> lxc.network.name = eth0 >> lxc.network.vlan.id = 1301 >> lxc.network.ipv4 = 128.5.131.100/24 >> >> >> The reason is in the shell command /sbin/ifdown, see below: >> >> ###################################################################### >> # Shut down depending interfaces >> # >> # Check if there are interfaces which depend on this interface. If yes these >> # have to be shut down first. >> # For example these might be bonding or vlan interfaces. Note that we don't >> # catch all types of depending interfaces currently. See function >> # 'get_depending_ifaces' in file 'functions' for details. >> # >> test "$SCRIPTNAME" = ifdown && DEP_IFACES=`get_depending_ifaces $INTERFACE` >> if [ "$?" = 0 -a "$NODEPS" != yes ] ; then >> message "`printf " %-9s is still used from interfaces %s" \ >> $INTERFACE "$DEP_IFACES"`" >> for DI in $DEP_IFACES; do > > Should the proper fix be to fix this script so that it doesn't call > ifdown recursively if $DI = $INTERFACE ? Hi Serge, yes, I had try this way before as below: for DI in $DEP_IFACES; do if [ "$DI" != "$INTERFACE" ] ; then ifdown $DI -o $OPTIONS fi done It works well, but I have no idea it is safe enough and no side effects? Thanks, Libo > >> ifdown $DI -o $OPTIONS >> done >> >> message "`printf " %-9s now going down itself" $INTERFACE`" >> # check if iface is (still) avaliable >> # [bonding master may go down itself >> # while the last slave gets removed] >> if ! is_iface_available $INTERFACE; then >> exit $R_SUCCESS >> fi >> fi >> >> >> $DEP_IFACES is also eth0 in this scene, so ifdown will call ifdown again and again. >> >> if we set lxc.network.name = eth1, it will be ok, so can we add a judgment to make >> lxc.network.link and lxc.network.name are not equal in lxc-start command. >> >> simple implement like: >> >> if [ lxc.network.type == vlan ] ; then >> if [ lxc.network.link == lxc.network.name ] ; then >> return false >> fi >> fi >> >> >> Is it reasonable? or any other way to achieve this? >> >> >> > > . > ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <529836CD.1080900-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>]
* Re: Q: use vlan in container [not found] ` <529836CD.1080900-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> @ 2013-11-29 14:18 ` Serge Hallyn 2013-11-30 1:46 ` Libo Chen 0 siblings, 1 reply; 5+ messages in thread From: Serge Hallyn @ 2013-11-29 14:18 UTC (permalink / raw) To: Libo Chen Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, zhangwei(Jovi), LKML, David Miller Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org): > On 2013/11/29 13:05, Serge Hallyn wrote: > > Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org): > >> Hello LXC experts, > >> > >> I meet a problem. When using vlan as network device in suse11 system container, > >> I can not use halt to stop this container. It hung on "eth0 is still used from interfaces eth0" in cycle. > >> > >> The config file: > >> > >> lxc.network.type = vlan > >> lxc.network.flags = up > >> lxc.network.link = eth0 > >> lxc.network.name = eth0 > >> lxc.network.vlan.id = 1301 > >> lxc.network.ipv4 = 128.5.131.100/24 > >> > >> > >> The reason is in the shell command /sbin/ifdown, see below: > >> > >> ###################################################################### > >> # Shut down depending interfaces > >> # > >> # Check if there are interfaces which depend on this interface. If yes these > >> # have to be shut down first. > >> # For example these might be bonding or vlan interfaces. Note that we don't > >> # catch all types of depending interfaces currently. See function > >> # 'get_depending_ifaces' in file 'functions' for details. > >> # > >> test "$SCRIPTNAME" = ifdown && DEP_IFACES=`get_depending_ifaces $INTERFACE` > >> if [ "$?" = 0 -a "$NODEPS" != yes ] ; then > >> message "`printf " %-9s is still used from interfaces %s" \ > >> $INTERFACE "$DEP_IFACES"`" > >> for DI in $DEP_IFACES; do > > > > Should the proper fix be to fix this script so that it doesn't call > > ifdown recursively if $DI = $INTERFACE ? > > Hi Serge, > > yes, I had try this way before as below: > > for DI in $DEP_IFACES; do > if [ "$DI" != "$INTERFACE" ] ; then > ifdown $DI -o $OPTIONS > fi > done > > It works well, but I have no idea it is safe enough and no side effects? It's safe enough and should have no side effects itself. But I recommend you first look up how get_depending_ifaces() is implemented. That's where this really should be fixed, and if it turns out that the proper fix for *that* is in the kernel then that's ok. -serge ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Q: use vlan in container 2013-11-29 14:18 ` Serge Hallyn @ 2013-11-30 1:46 ` Libo Chen 0 siblings, 0 replies; 5+ messages in thread From: Libo Chen @ 2013-11-30 1:46 UTC (permalink / raw) To: Serge Hallyn Cc: dingtianhong-hv44wF8Li93QT0dZR+AlfA, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, zhangwei(Jovi), LKML, David Miller On 2013/11/29 22:18, Serge Hallyn wrote: > Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org): >> On 2013/11/29 13:05, Serge Hallyn wrote: >>> Quoting Libo Chen (clbchenlibo.chen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org): >>>> Hello LXC experts, >>>> >>>> I meet a problem. When using vlan as network device in suse11 system container, >>>> I can not use halt to stop this container. It hung on "eth0 is still used from interfaces eth0" in cycle. >>>> >>>> The config file: >>>> >>>> lxc.network.type = vlan >>>> lxc.network.flags = up >>>> lxc.network.link = eth0 >>>> lxc.network.name = eth0 >>>> lxc.network.vlan.id = 1301 >>>> lxc.network.ipv4 = 128.5.131.100/24 >>>> >>>> >>>> The reason is in the shell command /sbin/ifdown, see below: >>>> >>>> ###################################################################### >>>> # Shut down depending interfaces >>>> # >>>> # Check if there are interfaces which depend on this interface. If yes these >>>> # have to be shut down first. >>>> # For example these might be bonding or vlan interfaces. Note that we don't >>>> # catch all types of depending interfaces currently. See function >>>> # 'get_depending_ifaces' in file 'functions' for details. >>>> # >>>> test "$SCRIPTNAME" = ifdown && DEP_IFACES=`get_depending_ifaces $INTERFACE` >>>> if [ "$?" = 0 -a "$NODEPS" != yes ] ; then >>>> message "`printf " %-9s is still used from interfaces %s" \ >>>> $INTERFACE "$DEP_IFACES"`" >>>> for DI in $DEP_IFACES; do >>> >>> Should the proper fix be to fix this script so that it doesn't call >>> ifdown recursively if $DI = $INTERFACE ? >> >> Hi Serge, >> >> yes, I had try this way before as below: >> >> for DI in $DEP_IFACES; do >> if [ "$DI" != "$INTERFACE" ] ; then >> ifdown $DI -o $OPTIONS >> fi >> done >> >> It works well, but I have no idea it is safe enough and no side effects? > > It's safe enough and should have no side effects itself. But > I recommend you first look up how get_depending_ifaces() is > implemented. That's where this really should be fixed, and if > it turns out that the proper fix for *that* is in the kernel > then that's ok. thank you for your suggestion. Libo > > -serge > > . > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-11-30 1:46 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-28 6:17 Q: use vlan in container Libo Chen
[not found] ` <5296E003.80804-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-11-29 5:05 ` Serge Hallyn
2013-11-29 6:40 ` Libo Chen
[not found] ` <529836CD.1080900-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-11-29 14:18 ` Serge Hallyn
2013-11-30 1:46 ` Libo Chen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox