* Q: use vlan in container
@ 2013-11-28 6:17 Libo Chen
2013-11-29 5:05 ` Serge Hallyn
0 siblings, 1 reply; 5+ messages in thread
From: Libo Chen @ 2013-11-28 6:17 UTC (permalink / raw)
To: containers
Cc: serge.hallyn, LKML, gaofeng, David Miller, Li Zefan, Huang Qiang,
Wengmeiling
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
* Re: Q: use vlan in container
2013-11-28 6:17 Q: use vlan in container Libo Chen
@ 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, LKML, gaofeng, David Miller, Li Zefan, Huang Qiang,
Wengmeiling
Quoting Libo Chen (clbchenlibo.chen@huawei.com):
> 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
2013-11-29 14:18 ` Serge Hallyn
0 siblings, 1 reply; 5+ messages in thread
From: Libo Chen @ 2013-11-29 6:40 UTC (permalink / raw)
To: Serge Hallyn
Cc: containers, LKML, gaofeng, David Miller, Li Zefan, Huang Qiang,
Wengmeiling, zhangwei(Jovi)
On 2013/11/29 13:05, Serge Hallyn wrote:
> Quoting Libo Chen (clbchenlibo.chen@huawei.com):
>> 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
* Re: Q: use vlan in container
2013-11-29 6:40 ` Libo Chen
@ 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, LKML, David Miller, zhangwei(Jovi)
Quoting Libo Chen (clbchenlibo.chen@huawei.com):
> On 2013/11/29 13:05, Serge Hallyn wrote:
> > Quoting Libo Chen (clbchenlibo.chen@huawei.com):
> >> 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: containers, LKML, David Miller, zhangwei(Jovi), dingtianhong
On 2013/11/29 22:18, Serge Hallyn wrote:
> Quoting Libo Chen (clbchenlibo.chen@huawei.com):
>> On 2013/11/29 13:05, Serge Hallyn wrote:
>>> Quoting Libo Chen (clbchenlibo.chen@huawei.com):
>>>> 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:47 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
2013-11-29 5:05 ` Serge Hallyn
2013-11-29 6:40 ` Libo Chen
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