conf/104884: Add support EtherChannel configuration to rc.conf
Florent Thoumie
flz at FreeBSD.org
Mon Jan 29 17:15:49 UTC 2007
Norikatsu Shigemura wrote:
> The following reply was made to PR conf/104884; it has been noted by GNATS.
>
> From: Norikatsu Shigemura <nork at FreeBSD.org>
> To: Florent Thoumie <flz at FreeBSD.org>
> Cc: Norikatsu Shigemura <nork at FreeBSD.org>, freebsd-bugs at FreeBSD.org,
> FreeBSD-gnats-submit at FreeBSD.org, freebsd-rc at FreeBSD.org
> Subject: Re: conf/104884: Add support EtherChannel configuration to rc.conf
> Date: Tue, 30 Jan 2007 01:53:17 +0900
>
> On Sun, 28 Jan 2007 19:37:03 +0000
> Florent Thoumie <flz at freebsd.org> wrote:
> > >> http://www.freebsd.org/cgi/query-pr.cgi?pr=104884
> > >>> Category: conf
> > >>> Responsible: freebsd-bugs
> > >>> Synopsis: Add support EtherChannel configuration to rc.conf
> > >>> Arrival-Date: Sat Oct 28 16:10:18 GMT 2006
> > > I chased HEAD. Please see following patch.
> > > Anyone, please handle this PR?
> > > And I'll make a patch for 6-stable.
> > I'm sorry, I meant to answer but forgot about it. I don't know much
>
> Thanks for your handling.
>
> > about technical details, so I'll only focus on style. Here are my
> > comments on the patch:
>
> I think that the answer of all questions is 'BECAUSE netgraph's
> specification.'. :-)
... which I don't really know, so better not take everything I write as
face value :-)
> > > Index: network.subr
> > > ===================================================================
> > > RCS file: /home/ncvs/src/etc/network.subr,v
> > > retrieving revision 1.176
> > > diff -u -r1.176 network.subr
> > > --- network.subr 29 Oct 2006 13:29:49 -0000 1.176
> > > +++ network.subr 28 Jan 2007 14:52:36 -0000
> > > @@ -907,3 +907,78 @@
> > > esac
> > > done
> > > }
> > > +
> > > +ng_mkpeer() {
> > > + ngctl -f - 2> /dev/null <<EOF
> > > +mkpeer $*
> > > +msg dummy nodeinfo
> > > +EOF
> > > +}
> > > +
> > > +ng_create_one() {
> > > + ng_mkpeer $* | while read line; do
> > > + t=`expr "${line}" : '.* name="\([a-z]*[0-9]*\)" .*'`
> > > + if [ -n "${t}" ]; then
> > > + echo ${t}
> > > + return
> > > + fi
> > > + done
> > > +}
>
> I implemented ng_mkpeer and ng_create_one as generic functions.
> If anyone want to add other netgraph function, they can use
> these functions.
I wasn't commenting this one, seemed alright to me.
> > > +ng_fec_create() {
> > > + local req_iface iface bogus
> > > + req_iface="$1"
> > > + if [ -z "${req_iface}" ]; then
> > Why are you testing this? It's only called in fec_up() and can't be
> > called with a empty argument. Or do you want to "export" the function to
> > other scripts?
>
> Ah! This code's meaning was changed from original code. Yes,
> I think that this code should be removed.
>
> > > + ngctl shutdown ${req_iface}: > /dev/null 2>&1
> > > + bogus=""
> > > + while true; do
> > > + iface=`ng_create_one fec dummy fec`
> > > + if [ -z "${iface}" ]; then
> > > + exit 2
> > > + fi
> > > + if [ "${iface}" = "${req_iface}" ]; then
> > > + echo ${iface}
> > > + break
> > > + fi
> > > + bogus="${bogus} ${iface}"
> > > + done
> > > + for iface in ${bogus}; do
> > > + ngctl shutdown ${iface}:
> > > + done
> >
> > These loops are a bit confusing. If I understand correctly, you're
> > creating interfaces until they reach the right number and then you
> > delete all the ones which have been created unnecessarily? Could it be
>
> Your understanding is right:-). But we cannot control unit number
> in 'ngctl mkpeer', because 'Find the first free unit number for a
> new interface' strategy in sys/netgraph/ng_fec.c#ng_fec_get_unit.
>
> > that iface is higher than req_iface (which would loop undefinitely)?
>
> Previously, I removed req_iface by ngctl shutdown. So not reache
> infinity:-).
Fair enough.
> > > +# fec_up ifn
> > > +# Configure Fast EtherChannel for interface $ifn. Returns 0 if FEC
> > > +# arguments were found and configured; returns 1 otherwise.
> > > +fec_up() {
> > > + case ${fec_interfaces} in
> > > + [Nn][Oo] | '')
> > > + ;;
> > What's the point of this? The 'case' seems useless to me. Just got with
> > the 'for' loop. If it's an empty list, then it just won't do anything.
> > Default has to be '' and not 'NO' (but it seems more sensible anyway).
>
> I obtained gif_up code. I don't know why/where are problem in it.
No problem, just seemed bad style to me :-)
--
Florent Thoumie
flz at FreeBSD.org
FreeBSD Committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 250 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-rc/attachments/20070129/b230cf71/signature.pgp
More information about the freebsd-rc
mailing list