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