Branch: refs/heads/master Home: https://github.com/jpirko/libteam Commit: b2de61b39696c9158e725a691aee5a6f16a64137 https://github.com/jpirko/libteam/commit/b2de61b39696c9158e725a691aee5a6f16a... Author: Sridhar Samudrala sridhar.samudrala@intel.com Date: 2015-07-24 (Fri, 24 Jul 2015)
Changed paths: M teamd/teamd_runner_lacp.c
Log Message: ----------- Fix sending duplicate LACP frames at the start of establishing a logical channel.
This issue can be seen with the following test script. It creates 2 net namespaces connected via a veth pair and then creates team over the veth interface in each namespace. tcpdump is run in background to collect the lacp frames. The trace shows 11 lacp frames exchanged with multiple duplicates within the first second.
================================================================================ #!/bin/bash
set -x set -e
# create 2 network namespaces: ns1 & ns2 ip netns add ns1 ip netns add ns2
# create veth pair (veth-ns1 and veth-ns2) ip link add veth-ns1 type veth peer name veth-ns2
# move veth-ns1 to ns1 ip link set veth-ns1 netns ns1
# move veth-ns2 to ns2 ip link set veth-ns2 netns ns2
# create and configure team-veth-ns1 in ns1 ip netns exec ns1 ./teamd -d -c '{"device": "team-veth-ns1", "hwaddr": "00:55:BB:BB:BB:01", "runner": {"name": "lacp", "active": true, "fast_rate": true}, "ports": {"veth-ns1": {}}}'
# capture lacp frames in ns1 ip netns exec ns1 tcpdump -w lacp.pcap -c 20 -n -i veth-ns1 -e ether proto 0x8809 &
# create and configure team-veth-ns2 ns2 ip netns exec ns2 ./teamd -d -c '{"device": "team-veth-ns2", "hwaddr": "00:55:BB:BB:BB:02", "runner": {"name": "lacp", "active": true, "fast_rate": true}, "ports": {"veth-ns2": {}}}'
sleep 10 ================================================================================
With this patch only 3 lacp frames are exchanged in the first second with no duplicates.
Signed-off-by: Sridhar Samudrala sridhar.samudrala@intel.com Signed-off-by: Jiri Pirko jiri@resnulli.us
libteam@lists.fedorahosted.org