AT_BANNER([lacp])
+# Strips out Reciulation ID information since it may change over time.
+m4_define([STRIP_RECIRC_ID], [[sed '
+ s/Recirc-ID.*$/<del>/
+' ]])
+
AT_SETUP([lacp - config])
OVS_VSWITCHD_START([\
add-port br0 p1 --\
set Port p1 lacp=active --\
set Interface p1 type=dummy ])
+ovs-appctl time/stop
+ovs-appctl time/warp 100
+ovs-appctl time/warp 100
+ovs-appctl time/warp 100
+
AT_CHECK([ovs-appctl lacp/show], [0], [dnl
---- p1 ----
status: active negotiated
other_config:lacp-port-priority=222 \
other_config:lacp-aggregation-key=3333 ])
+ovs-appctl time/stop
+ovs-appctl time/warp 100
+ovs-appctl time/warp 100
+ovs-appctl time/warp 100
+
AT_CHECK([ovs-appctl lacp/show], [0], [stdout])
AT_CHECK([sed -e 's/aggregation key:.*/aggregation key: <omitted>/' < stdout], [0], [dnl
---- bond ----
AT_CHECK([ovs-appctl bond/show], [0], [dnl
---- bond ----
bond_mode: active-backup
+bond may use recirculation: no, Recirc-ID : -1
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
[add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \
other-config:lacp-time=fast \
other-config:bond-rebalance-interval=0 -- \
- set interface p0 type=patch options:peer=p2 ofport_request=1 -- \
- set interface p1 type=patch options:peer=p3 ofport_request=2 -- \
+ set interface p0 type=patch options:peer=p2 ofport_request=1 \
+ other-config:lacp-aggregation-key=2 -- \
+ set interface p1 type=patch options:peer=p3 ofport_request=2 \
+ other-config:lacp-aggregation-key=2 -- \
add-br br1 -- \
set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \
other-config:lacp-time=fast \
other-config:bond-rebalance-interval=0 -- \
- set interface p2 type=patch options:peer=p0 ofport_request=3 -- \
- set interface p3 type=patch options:peer=p1 ofport_request=4 --])
+ set interface p2 type=patch options:peer=p0 ofport_request=3 \
+ other-config:lacp-aggregation-key=4 -- \
+ set interface p3 type=patch options:peer=p1 ofport_request=4 \
+ other-config:lacp-aggregation-key=4 --])
AT_CHECK([ovs-appctl netdev-dummy/set-admin-state up], 0, [OK
])
+ovs-appctl time/stop
+
# Wait for up to 5 (simulated) seconds, until LACP negotiation finishes.
i=0
while :; do
AT_CHECK(
[ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
-ovs-appctl bond/show bond0
-ovs-appctl bond/show bond1], [0], [stdout])
+ovs-appctl bond/show bond0 | STRIP_RECIRC_ID
+ovs-appctl bond/show bond1 | STRIP_RECIRC_ID ], [0], [stdout])
AT_CHECK([sed '/active slave/d' stdout], [0], [dnl
---- bond0 ----
status: active negotiated
partner state: activity timeout aggregation synchronized collecting distributing
---- bond0 ----
bond_mode: balance-tcp
+bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
---- bond1 ----
bond_mode: balance-tcp
+bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
AT_CHECK(
[ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
-ovs-appctl bond/show bond0
-ovs-appctl bond/show bond1], [0], [dnl
+ovs-appctl bond/show bond0 | STRIP_RECIRC_ID
+ovs-appctl bond/show bond1 | STRIP_RECIRC_ID ], [0], [dnl
---- bond0 ----
status: active negotiated
sys_id: aa:55:aa:55:00:00
partner state: activity timeout aggregation synchronized collecting distributing
---- bond0 ----
bond_mode: balance-tcp
+bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
---- bond1 ----
bond_mode: balance-tcp
+bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
AT_CHECK(
[ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
-ovs-appctl bond/show bond0
-ovs-appctl bond/show bond1], [0], [dnl
+ovs-appctl bond/show bond0 | STRIP_RECIRC_ID
+ovs-appctl bond/show bond1 | STRIP_RECIRC_ID ], [0], [dnl
---- bond0 ----
status: active negotiated
sys_id: aa:55:aa:55:00:00
partner state: activity timeout aggregation synchronized collecting distributing
---- bond0 ----
bond_mode: balance-tcp
+bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
---- bond1 ----
bond_mode: balance-tcp
+bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms