Avi Kivity
2006-Feb-22 08:54 UTC
[Xen-devel] [PATCH] don''t require ebtables in the host kernel
The network-bridge script fails when setting a few sysctls
which are only available if ebtables is present in the host
kernel. Fix by ignoring the return value of the sysctl command.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Index: xen/tools/examples/network-bridge
==================================================================---
xen/tools/examples/network-bridge (revision 991)
+++ xen/tools/examples/network-bridge (revision 992)
@@ -158,9 +158,9 @@
# Don''t create the bridge if it already exists.
if ! brctl show | grep -q ${bridge} ; then
- sysctl -w "net.bridge.bridge-nf-call-arptables=0"
- sysctl -w "net.bridge.bridge-nf-call-ip6tables=0"
- sysctl -w "net.bridge.bridge-nf-call-iptables=0"
+ ! sysctl -w "net.bridge.bridge-nf-call-arptables=0"
+ ! sysctl -w "net.bridge.bridge-nf-call-ip6tables=0"
+ ! sysctl -w "net.bridge.bridge-nf-call-iptables=0"
brctl addbr ${bridge}
brctl stp ${bridge} off
brctl setfd ${bridge} 0
--
error compiling committee.c: too many arguments to function
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Ewan Mellor
2006-Feb-22 13:33 UTC
Re: [Xen-devel] [PATCH] don''t require ebtables in the host kernel
On Wed, Feb 22, 2006 at 10:54:51AM +0200, Avi Kivity wrote:> The network-bridge script fails when setting a few sysctls > which are only available if ebtables is present in the host > kernel. Fix by ignoring the return value of the sysctl command. > > Signed-off-by: Avi Kivity <avi@qumranet.com> > > Index: xen/tools/examples/network-bridge > ==================================================================> --- xen/tools/examples/network-bridge (revision 991) > +++ xen/tools/examples/network-bridge (revision 992) > @@ -158,9 +158,9 @@ > > # Don''t create the bridge if it already exists. > if ! brctl show | grep -q ${bridge} ; then > - sysctl -w "net.bridge.bridge-nf-call-arptables=0" > - sysctl -w "net.bridge.bridge-nf-call-ip6tables=0" > - sysctl -w "net.bridge.bridge-nf-call-iptables=0" > + ! sysctl -w "net.bridge.bridge-nf-call-arptables=0" > + ! sysctl -w "net.bridge.bridge-nf-call-ip6tables=0" > + ! sysctl -w "net.bridge.bridge-nf-call-iptables=0" > brctl addbr ${bridge} > brctl stp ${bridge} off > brctl setfd ${bridge} 0Where did this network-bridge script come from? The stock Xen-3.0 network-bridge doesn''t have these sysctl lines in the first place. Furthermore, using ! doesn''t ignore the return value -- it inverts it. I''d be surprised if this works in systems that _do_ have ebtables. Ewan. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Avi Kivity
2006-Feb-22 14:23 UTC
Re: [Xen-devel] [PATCH] don''t require ebtables in the host kernel
Ewan Mellor wrote:>>--- xen/tools/examples/network-bridge (revision 991) >>+++ xen/tools/examples/network-bridge (revision 992) >>@@ -158,9 +158,9 @@ >> >> # Don''t create the bridge if it already exists. >> if ! brctl show | grep -q ${bridge} ; then >>- sysctl -w "net.bridge.bridge-nf-call-arptables=0" >>- sysctl -w "net.bridge.bridge-nf-call-ip6tables=0" >>- sysctl -w "net.bridge.bridge-nf-call-iptables=0" >>+ ! sysctl -w "net.bridge.bridge-nf-call-arptables=0" >>+ ! sysctl -w "net.bridge.bridge-nf-call-ip6tables=0" >>+ ! sysctl -w "net.bridge.bridge-nf-call-iptables=0" >> brctl addbr ${bridge} >> brctl stp ${bridge} off >> brctl setfd ${bridge} 0 >> >> > >Where did this network-bridge script come from? The stock Xen-3.0 >network-bridge doesn''t have these sysctl lines in the first place. > >It comes from FC5. Sorry, should have checked the pristine Xen sources. Sorry about the noise.>Furthermore, using ! doesn''t ignore the return value -- it inverts it. I''d be >surprised if this works in systems that _do_ have ebtables. > >No, ! on the beginning of a command tells bash to ignore the exit code: `-e'' Exit immediately if a simple command (*note Simple Commands::) exits with a non-zero status, unless the command that fails is part of the command list immediately following a `while'' or `until'' keyword, part of the test in an `if'' statement, part of a `&&'' or `||'' list, or if the command''s return status is being inverted using `!''. A trap on `ERR'', if set, is executed before the shell exits. ''sysctl -ew'' would have been better though. -- error compiling committee.c: too many arguments to function _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel