On Wed, Dec 17, 2014 at 6:09 PM, David P. Discher <d...@dpdtech.com> wrote: > > On Dec 15, 2014, at 11:33 AM, Alan Somers <asom...@freebsd.org> wrote: > >> On Sun, Dec 14, 2014 at 6:23 PM, David P. Discher <d...@dpdtech.com> wrote: >>> >>> So, I think I’ve identified the issue. In sys/net/ieee8023ad_lacp.c, >>> lacp_pdu_input() has a sanity check : >>> >>> if (m->m_pkthdr.len != sizeof(*du)) { >>> goto bad; >>> } >>> >>> I added some debugging information in if_lagg, and ran with it. The lacpdu >>> packet that being sent by the TP-Link switch is 4 bytes longer than the >>> FreeBSD "struct lacpdu du”. >>> >>> em1: lacp_pdu_input-sizeof(du) bad m_pkthdr.len=128 sizeof(du)=124 >>> >>> My packet captures shows the packet size differing as well. >>> >>> I’m still poking around. I’ve been trying to look for the official LACPDU >>> binary/wire format … if someone can point me to the reference for that, >>> that would be helpful (at least my own understanding). >> >> Try here: >> http://standards.ieee.org/findstds/standard/802.1AX-2008.html >> > > Thanks - I hadn’t seen the “free” version from IEEE, and may looking into > that later. However, I think my time with messing around with this switch > and lagg is just about over. > > I did get FreeBSD to work with LACP in this Switch. I hacked in the 4 extra > bytes in struct lacpdu in src/sys/net/ieee8023ad_lacp.h > > Index: ieee8023ad_lacp.h > =================================================================== > --- ieee8023ad_lacp.h (revision 275779) > +++ ieee8023ad_lacp.h (working copy) > @@ -151,6 +151,7 @@ > struct lacp_collectorinfo ldu_collector; > struct tlvhdr ldu_tlv_term; > uint8_t ldu_resv[50]; > + uint8_t tplink[4]; > } __packed; > > /* > > > This work great and without any issue. All the defaults with 10-stable > (r275778) and recent version of -head with this one line made it work. Of > course, this will likely break FreeBSD with all other switches LACP.
I'm glad that you got your problem sorted out. Please do let us know if you find a more general solution. > > However, what I have also discovered this this switch is unlike FreeBSD which > lagghash includes L4, the switch only seems to hash over SRC+DST IP or > SRC+DST MAC. Which makes it pretty much just sends all the traffic down one > link from the switch. So for my particular use case with a small set of > hosts, this switch is not useful for me. Actually, that's a fairly common problem. I've even seen it on some expensive Cisco switches. > > I would not recommend the TP-Link TL-SG2008 8-Port Gigabit Smart Switch for > use with FreeBSD … or for any use with LACP that is expecting increased > throughput for a small set of hosts. > > > - > David P. Discher > http://davidpdischer.com/ > AIM: DavidDPD | Y!M: daviddpdz _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"