Discussion:
CVS commit: src/sys
(too old to reply)
Thor Lancelot Simon
2009-05-29 15:25:52 UTC
Permalink
Adds SIOCINITIFADDR support to the wm driver for setting the AF_LINK
address, necessary for agr to be able to set the mac addresses of each
port to the agr address (i.e. so it can receive all intended traffic
at the hardware level).
FWIW: the MAC-address-setting code in agr was not working before with
any commonly available interface, so this was what we initially came
up with to make agr work at all (otherwise, it will work only with
tcpdump attached, because that puts the "wrong address" receive
interface or interfaces in promiscuous mode). I'm now aware there's
a new interface for managing interface MAC addresses, but it doesn't
seem to currently work for agr. Because agr's been broken for so long,
it's been bitrotting -- so I asked Darran to check this code in for now
so people can at least use agr and try to shake out the bugs.
Adds support for disabling the LACP protocol by setting LINK1 on the agr
interface (e.g. ifconfig agr0 link1).
I think static configuration is generally useful, but also, in our testing
we've never seen agr's LACP implementation negotiate properly, either with
another agr instance or with a real switch. If anyone _does_ get LACP to
work with agr I'd very, very much like to know!

Thor

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
David Young
2009-05-29 23:54:33 UTC
Permalink
Post by Thor Lancelot Simon
Adds SIOCINITIFADDR support to the wm driver for setting the AF_LINK
address, necessary for agr to be able to set the mac addresses of each
port to the agr address (i.e. so it can receive all intended traffic
at the hardware level).
FWIW: the MAC-address-setting code in agr was not working before with
any commonly available interface, so this was what we initially came
up with to make agr work at all (otherwise, it will work only with
tcpdump attached, because that puts the "wrong address" receive
interface or interfaces in promiscuous mode). I'm now aware there's
a new interface for managing interface MAC addresses, but it doesn't
seem to currently work for agr. Because agr's been broken for so long,
it's been bitrotting -- so I asked Darran to check this code in for now
so people can at least use agr and try to shake out the bugs.
I understand why you did it this way. Let me see if I can make agr use
SIOCALIFADDR. Turns out that agr needs to create an AF_LINK socket and
call ifioctl(), not ifp->if_ioctl, so it is more work than I thought.

Dave
--
David Young OJC Technologies
***@ojctech.com Urbana, IL * (217) 278-3933

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
YAMAMOTO Takashi
2009-06-09 22:37:57 UTC
Permalink
hi,

thanks for working on this.
Module Name: src
Committed By: darran
Date: Fri May 29 04:57:05 UTC 2009
src/sys/dev/pci: if_wm.c
src/sys/net: if_ethersubr.c
src/sys/net/agr: ieee8023ad_lacp.c if_agr.c if_agrether.c
if_agrvar_impl.h
Add vlan support and hardware offload capabilities to agr.
These changes allow vlans to be layered above agr, with the attach
and detach propogated to the member ports in the aggregation.
Note the agr interface must be up before the vlan is attached.
Adds SIOCINITIFADDR support to the wm driver for setting the AF_LINK
address, necessary for agr to be able to set the mac addresses of each
port to the agr address (i.e. so it can receive all intended traffic
at the hardware level).
Adds support for disabling the LACP protocol by setting LINK1 on the agr
interface (e.g. ifconfig agr0 link1).
i'm not happy with using link1 for the purpose.
1 bit is not enough to specify a configuration mechanism.
IMO it should be able to be specified with a string like
"lacp" "static" etc. (or probably with a plist with configuration
mechanism specific parameters like port priority etc.)
cvs rdiff -u -r1.174 -r1.175 src/sys/dev/pci/if_wm.c
cvs rdiff -u -r1.171 -r1.172 src/sys/net/if_ethersubr.c
cvs rdiff -u -r1.8 -r1.9 src/sys/net/agr/ieee8023ad_lacp.c
i'm not happy with using _lacp.c file for static configuration.
with static configuration, the lacp state machine should not run
in the first place.
cvs rdiff -u -r1.22 -r1.23 src/sys/net/agr/if_agr.c
DNH_DEBUG?
cvs rdiff -u -r1.6 -r1.7 src/sys/net/agr/if_agrether.c
as your comment suggets, capability should be intersection of
underlying ports. what's wrong with doing it in _portinit/portfini?

YAMAMOTO Takashi
cvs rdiff -u -r1.7 -r1.8 src/sys/net/agr/if_agrvar_impl.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Loading...