FreeBSD 10-stable (r274577) LACP / IEEE 802.3ad with TP-Link TL-SG2008 - not working
Alan Somers
asomers at freebsd.org
Mon Dec 15 19:33:42 UTC 2014
On Sun, Dec 14, 2014 at 6:23 PM, David P. Discher <dpd at 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
>
> Not exactly sure what these extra 4 bytes are at the end of the packet. Still trying to figure that out.
>
>
> -
> David P. Discher
> http://davidpdischer.com/
> AIM: DavidDPD | Y!M: daviddpdz
>
>
>
> On Dec 4, 2014, at 8:41 PM, David P. Discher <dpd at dpdtech.com> wrote:
>
>> Thanks Adam -
>>
>> On Dec 4, 2014, at 1:58 PM, Adam McDougall <mcdouga9 at egr.msu.edu> wrote:
>>
>>>
>>> Is the switch side set to "active" for the lacp mode (instead of
>>> passive)? Also, try:
>>> sysctl net.link.lagg.0.lacp.lacp_strict_mode=0
>>>
>>> If either of those work, I'll explain more, don't have time to dig for
>>> old email right this minute.
>>
>> Yes, the switch was in active mode. Turn strict mode off (which I thought I did before, but of course this sysctl clears when destroying the interface). So, the LACP did finally negotiated, at least in ifconfig :
>
More information about the freebsd-net
mailing list