FreeBSD 10-stable (r274577) LACP / IEEE 802.3ad with TP-Link TL-SG2008 - not working

Alan Somers asomers at freebsd.org
Thu Dec 4 20:50:51 UTC 2014


On Wed, Dec 3, 2014 at 12:21 PM, David P. Discher <dpd at dpdtech.com> wrote:
> Hey Net -
>
> In probably a poor, cheap choice, I picked up a TP-Link TL-SG2008 Desktop Smart Switch, which supports LACP/802.3ad.  I’m currently running 10.1-STABLE r274577 on the machine I’m testing with.  I’m testing right now with just 1 port (two ports didn’t work either.).
>
> Hardware is Supermicro X7DB8.
>
>
> em1: <Intel(R) PRO/1000 Network Connection 7.4.2> port 0x2020-0x203f mem 0xd8260000-0xd827ffff,0xd8240000-0xd825ffff irq 19 at device 0.1 on pci6
>
> em1 at pci0:6:0:1: class=0x020000 card=0x109615d9 chip=0x10968086 rev=0x01 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = '80003ES2LAN Gigabit Ethernet Controller (Copper)'
>     class      = network
>     subclass   = ethernet
>
>
>> ifconfig lagg0
> lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>         options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
>         ether 00:30:48:35:cc:25
>         inet 10.1.10.150 netmask 0xffffff00 broadcast 10.1.10.255
>         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>         media: Ethernet autoselect
>         status: active
>         laggproto lacp lagghash l2,l3,l4
>         laggport: em1 flags=0<>
>
>
> Setting net.link.lagg.lacp.debug=2, here is the output from the the host trying to negotiate :
>
>
>         em1: lacp_sm_rx_update_default_selected
>         em1: lacp_sm_rx_update_selected_from_peerinfo
>         em1: lacp_sm_rx_record_default
>         em1: lacp_sm_mux: state= 0x1, selected= 0x0, p_sync= 0x0, p_collecting= 0x0
>         em1: lacpdu transmit
>         actor=(8000,00-30-48-35-CC-25,008B,8000,0002)
>         actor.state=45<ACTIVITY,AGGREGATION,DEFAULTED>
>         partner=(FFFF,00-00-00-00-00-00,0000,FFFF,0000)
>         partner.state=0
>         maxdelay=0
>         em1: lacp_sm_mux: state= 0x0, selected= 0x2, p_sync= 0x0, p_collecting= 0x0
>         em1: lacp_sm_mux: state= 0x1, selected= 0x2, p_sync= 0x0, p_collecting= 0x0
>         em1: lacp_sm_mux: state= 0x1, selected= 0x2, p_sync= 0x0, p_collecting= 0x0
>         em1: lacpdu transmit
>         actor=(8000,00-30-48-35-CC-25,008B,8000,0002)
>         actor.state=4d<ACTIVITY,AGGREGATION,SYNC,DEFAULTED>
>         partner=(FFFF,00-00-00-00-00-00,0000,FFFF,0000)
>         partner.state=0
>         maxdelay=0
>         em1: lacp_sm_mux: state= 0x2, selected= 0x2, p_sync= 0x0, p_collecting= 0x0
>         em1: lacp_sm_mux: state= 0x2, selected= 0x2, p_sync= 0x0, p_collecting= 0x0
>         em1: lacp_sm_mux: state= 0x2, selected= 0x2, p_sync= 0x0, p_collecting= 0x0
>         [...]
>
> Not sure if the attachment will work to the list, but here is a pcap attached em1 (sudo tcpdump -i em1 -s 0 -w lacp.pcap).  Attaching to the lagg0 with tcpdump, filters out the freebsd’s LACP packets, but still sees the TP-Link’s packets.

Did you remember to configure the switch to use LACP on those ports?
It isn't automatic.  And did you remember to manually up em1?  Those
are the two commonest LACP configuration mistakes.

-Alan


More information about the freebsd-net mailing list