* Re: [dts] [PATCH V2][bonding/802.3ad]: test plan for testpmd bonding/802.3ad mode
2019-01-31 6:31 ` yufengmx
@ 2019-02-01 5:43 ` Chen, Zhaoyan
2019-02-01 5:50 ` Tu, Lijuan
1 sibling, 0 replies; 4+ messages in thread
From: Chen, Zhaoyan @ 2019-02-01 5:43 UTC (permalink / raw)
To: yufengmx, dts; +Cc: Chen, Zhaoyan
Acked-by: Zhaoyan Chen<zhaoyan.chen@intel.com>
Regards,
Zhaoyan Chen
> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of yufengmx
> Sent: Thursday, January 31, 2019 2:32 PM
> To: dts@dpdk.org
> Cc: yufengmx <"yufengx.mo@intel.com"@intel.com>
> Subject: [dts] [PATCH V2][bonding/802.3ad]: test plan for testpmd
> bonding/802.3ad mode
>
>
> link bonding mode 4 is IEEE 802.3ad Dynamic link aggregation. Creates aggregation
> groups that share the same speed and duplex settings. Utilizes all slaves in the active
> aggregator according to the 802.3ad specification. DPDK realize it based on 802.1AX
> specification, it includes LACP protocal and Marker protocol. This mode requires a
> switch that supports IEEE 802.3ad Dynamic link aggregation.
>
> Signed-off-by: yufengmx <yufengx.mo@intel.com@intel.com>
> ---
> test_plans/pmd_bonded_8023ad_test_plan.rst | 421
> +++++++++++++++++++++++++++++
> 1 file changed, 421 insertions(+)
> create mode 100644 test_plans/pmd_bonded_8023ad_test_plan.rst
>
> diff --git a/test_plans/pmd_bonded_8023ad_test_plan.rst
> b/test_plans/pmd_bonded_8023ad_test_plan.rst
> new file mode 100644
> index 0000000..140f83c
> --- /dev/null
> +++ b/test_plans/pmd_bonded_8023ad_test_plan.rst
> @@ -0,0 +1,421 @@
> +.. Copyright (c) <2010-2019>, Intel Corporation
> + All rights reserved.
> +
> + Redistribution and use in source and binary forms, with or without
> + modification, are permitted provided that the following conditions
> + are met:
> +
> + - Redistributions of source code must retain the above copyright
> + notice, this list of conditions and the following disclaimer.
> +
> + - Redistributions in binary form must reproduce the above copyright
> + notice, this list of conditions and the following disclaimer in
> + the documentation and/or other materials provided with the
> + distribution.
> +
> + - Neither the name of Intel Corporation nor the names of its
> + contributors may be used to endorse or promote products derived
> + from this software without specific prior written permission.
> +
> + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> CONTRIBUTORS
> + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
> + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
> + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
> + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> CONTRACT,
> + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
> + OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +Link Bonding for mode 4 (802.3ad)
> +=================================
> +
> +This test plan is mainly to test link bonding mode 4(802.3ad) function
> +via testpmd.
> +
> +link bonding mode 4 is IEEE 802.3ad Dynamic link aggregation. Creates
> +aggregation groups that share the same speed and duplex settings.
> +Utilizes all slaves in the active aggregator according to the 802.3ad
> +specification. DPDK realize it based on 802.1AX specification, it
> +includes LACP protocal and Marker protocol. This mode requires a switch
> +that supports IEEE 802.3ad Dynamic link aggregation.
> +
> +note: Slave selection for outgoing traffic is done according to the
> +transmit hash policy, which may be changed from the default simple XOR layer2
> policy.
> +
> +Requirements
> +------------
> +
> +#. Bonded ports shall maintain statistics similar to normal port.
> +
> +#. The slave links shall be monitor for link status change. See also the concept
> + of up/down time delay to handle situations such as a switch reboots, it is
> + possible that its ports report "link up" status before they become usable.
> +
> +#. Upon unbonding the bonding PMD driver must restore the MAC addresses that
> the
> + slaves had before they were enslaved.
> +
> +#. According to the bond type, when the bond interface is placed in promiscuous
> + mode it will propagate the setting to the slave devices.
> +
> +#. LACP control packet filtering offload. It is a idea of performance
> + improvement, which use hardware offloads to improve packet classification.
> +
> +#. support three 802.3ad aggregation selection logic modes (stable/bandwidth/
> + count). The Selection Logic selects a compatible Aggregator for a port, using
> + the port LAG ID. The Selection Logic may determine that the link should be
> + operated as a standby link if there are constraints on the simultaneous
> + attachment of ports that have selected the same Aggregator.
> +
> +#. technical details refer to content attached in website::
> +
> + http://dpdk.org/ml/archives/dev/2017-May/066143.html
> +
> +#. DPDK technical details refer to::
> +
> + dpdk/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst:
> + ``Link Aggregation 802.3AD (Mode 4)``
> +
> +#. linux technical document of 802.3ad as testing reference document::
> +
> +
> + https://www.kernel.org/doc/Documentation/networking/bonding.txt:``802.
> + 3ad``
> +
> +Prerequisites for Bonding
> +=========================
> +all link ports of switch/dut should be the same data rate and support full-duplex.
> +
> +Functional testing hardware configuration
> +-----------------------------------------
> +NIC and DUT ports requirements:
> +
> +- Tester: 2 ports of nic
> +- DUT: 2 ports of nic
> +
> +port topology diagram::
> +
> + Tester DUT
> + .-------. .-------.
> + | port0 | <------------------> | port0 |
> + | port1 | <------------------> | port1 |
> + '-------' '-------'
> +
> +Test Case : basic behavior start/stop
> +=====================================
> +#. check bonded device stop/start action under frequency operation
> +status
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> +
> +#. loop execute this step 10 times, check if bonded device still work::
> +
> + testpmd> port stop all
> + testpmd> port start all
> + testpmd> start
> + testpmd> show bonding config 2
> + testpmd> stop
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior mac
> +==============================
> +#. bonded device's default mac is one of each slave's mac after one slave has
> + been added.
> +#. when no slave attached, mac should be 00:00:00:00:00:00 #. slave's
> +mac restore the MAC addresses that the slave has before they were
> +enslaved.
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> +
> +#. check bond device mac should be 00:00:00:00:00:00::
> +
> + testpmd> show bonding config 2
> +
> +#. add two slaves to bond port::
> +
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> + testpmd> port start all
> +
> +#. check bond device mac should be one of each slave's mac::
> +
> + testpmd> show bonding config 0
> + testpmd> show bonding config 1
> + testpmd> show bonding config 2
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior link up/down
> +=======================================
> +#. bonded device should be down status without slaves.
> +#. bonded device device should have the same status of link status.
> +#. Active Slaves status should change with the slave status change.
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> +
> +#. stop bonded device and check bonded device/slaves link status::
> +
> + testpmd> port stop 2
> + testpmd> show bonding config 2
> + testpmd> show bonding config 1
> + testpmd> show bonding config 0
> +
> +#. start bonded device and check bonded device/slaves link status::
> +
> + testpmd> port start 2
> + testpmd> show bonding config 2
> + testpmd> show bonding config 1
> + testpmd> show bonding config 0
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior promiscuous mode
> +============================================
> +#. bonded device promiscuous mode should be ``enabled`` by default.
> +#. bonded device/slave device should have the same status of promiscuous mode.
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> +
> +#. check if bonded device promiscuous mode is ``enabled``::
> +
> + testpmd> show bonding config 2
> +
> +#. add two slaves and check if promiscuous mode is ``enabled``::
> +
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> + testpmd> show bonding config 0
> + testpmd> show bonding config 1
> +
> +#. disable bonded device promiscuous mode and check promiscuous mode::
> +
> + testpmd> set promisc 2 off
> + testpmd> show bonding config 2
> +
> +#. enable bonded device promiscuous mode and check promiscuous mode::
> +
> + testpmd> set promisc 2 on
> + testpmd> show bonding config 2
> +
> +#. check slaves' promiscuous mode::
> +
> + testpmd> show bonding config 0
> + testpmd> show bonding config 1
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior agg mode
> +===================================
> +#. stable is the default agg mode.
> +#. check 802.3ad aggregation mode configuration, support <agg_option>::
> + ``count``
> + ``stable``
> + ``bandwidth``
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> + testpmd> port start all
> + testpmd> show bonding config 2
> + testpmd> set bonding agg_mode 2 <agg_option>
> +
> +#. check if agg_mode set successful::
> +
> + testpmd> show bonding config 2
> + Bonding mode: 4
> + IEEE802.3AD Aggregator Mode: <agg_option>
> + Slaves (2): [0 1]
> + Active Slaves (2): [0 1]
> + Primary: [0]
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior dedicated queues
> +===========================================
> +#. check 802.3ad dedicated queues is ``disable`` by default #. check
> +802.3ad set dedicated queues, support <agg_option>::
> + ``disable``
> + ``enable``
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> + testpmd> show bonding config 2
> +
> +#. check if dedicated_queues disable successful::
> +
> + testpmd> set bonding lacp dedicated_queues 2 disable
> +
> +#. check if bonded port can start::
> +
> + testpmd> port start all
> + testpmd> start
> +
> +#. check if dedicated_queues enable successful::
> +
> + testpmd> stop
> + testpmd> port stop all
> + testpmd> set bonding lacp dedicated_queues 2 enable
> +
> +#. check if bonded port can start::
> +
> + testpmd> port start all
> + testpmd> start
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : command line option
> +===============================
> +#. check command line option::
> +
> + slave=<0000:xx:00.0>
> + agg_mode=<bandwidth | stable | count>
> +
> +#. compare bonding configuration with expected configuration.
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd ::
> +
> + ./testpmd -c 0x0f -n 4 \
> + --vdev
> 'net_bonding0,slave=0000:xx:00.0,slave=0000:xx:00.1,mode=4,agg_mode=<agg_opti
> on>' \
> + -- -i --port-topology=chained
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> +
> +#. check if bonded device has been created and slaves have been bonded successful::
> +
> + testpmd> show bonding config 2
> + Bonding mode: 4
> + IEEE802.3AD Aggregator Mode: <agg_option>
> + Slaves (2): [0 1]
> + Active Slaves (2): [0 1]
> + Primary: [0]
> +
> +#. check if bonded port can start::
> +
> + testpmd> port start all
> + testpmd> start
> +
> +#. check if dedicated_queues enable successful::
> +
> + testpmd> stop
> + testpmd> port stop all
> +
> +#. quit testpmd::
> +
> + testpmd> quit
> \ No newline at end of file
> --
> 1.9.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dts] [PATCH V2][bonding/802.3ad]: test plan for testpmd bonding/802.3ad mode
2019-01-31 6:31 ` yufengmx
2019-02-01 5:43 ` Chen, Zhaoyan
@ 2019-02-01 5:50 ` Tu, Lijuan
1 sibling, 0 replies; 4+ messages in thread
From: Tu, Lijuan @ 2019-02-01 5:50 UTC (permalink / raw)
To: yufengmx, dts
Applying: test plan for testpmd bonding/802.3ad mode
.git/rebase-apply/patch:47: trailing whitespace.
This test plan is mainly to test link bonding mode 4(802.3ad) function via
.git/rebase-apply/patch:50: trailing whitespace.
link bonding mode 4 is IEEE 802.3ad Dynamic link aggregation. Creates
.git/rebase-apply/patch:51: trailing whitespace.
aggregation groups that share the same speed and duplex settings. Utilizes all
.git/rebase-apply/patch:52: trailing whitespace.
slaves in the active aggregator according to the 802.3ad specification. DPDK
.git/rebase-apply/patch:53: trailing whitespace.
realize it based on 802.1AX specification, it includes LACP protocal and Marker
warning: squelched 22 whitespace errors
warning: 27 lines add whitespace errors.
> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of yufengmx
> Sent: Thursday, January 31, 2019 2:32 PM
> To: dts@dpdk.org
> Cc: yufengmx <"yufengx.mo@intel.com"@intel.com>
> Subject: [dts] [PATCH V2][bonding/802.3ad]: test plan for testpmd
> bonding/802.3ad mode
>
>
> link bonding mode 4 is IEEE 802.3ad Dynamic link aggregation. Creates
> aggregation groups that share the same speed and duplex settings. Utilizes all
> slaves in the active aggregator according to the 802.3ad specification. DPDK
> realize it based on 802.1AX specification, it includes LACP protocal and Marker
> protocol. This mode requires a switch that supports IEEE 802.3ad Dynamic link
> aggregation.
>
> Signed-off-by: yufengmx <yufengx.mo@intel.com@intel.com>
> ---
> test_plans/pmd_bonded_8023ad_test_plan.rst | 421
> +++++++++++++++++++++++++++++
> 1 file changed, 421 insertions(+)
> create mode 100644 test_plans/pmd_bonded_8023ad_test_plan.rst
>
> diff --git a/test_plans/pmd_bonded_8023ad_test_plan.rst
> b/test_plans/pmd_bonded_8023ad_test_plan.rst
> new file mode 100644
> index 0000000..140f83c
> --- /dev/null
> +++ b/test_plans/pmd_bonded_8023ad_test_plan.rst
> @@ -0,0 +1,421 @@
> +.. Copyright (c) <2010-2019>, Intel Corporation
> + All rights reserved.
> +
> + Redistribution and use in source and binary forms, with or without
> + modification, are permitted provided that the following conditions
> + are met:
> +
> + - Redistributions of source code must retain the above copyright
> + notice, this list of conditions and the following disclaimer.
> +
> + - Redistributions in binary form must reproduce the above copyright
> + notice, this list of conditions and the following disclaimer in
> + the documentation and/or other materials provided with the
> + distribution.
> +
> + - Neither the name of Intel Corporation nor the names of its
> + contributors may be used to endorse or promote products derived
> + from this software without specific prior written permission.
> +
> + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> CONTRIBUTORS
> + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
> + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
> + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
> INDIRECT,
> + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> OR
> + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> CONTRACT,
> + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
> + OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +Link Bonding for mode 4 (802.3ad)
> +=================================
> +
> +This test plan is mainly to test link bonding mode 4(802.3ad) function
> +via testpmd.
> +
> +link bonding mode 4 is IEEE 802.3ad Dynamic link aggregation. Creates
> +aggregation groups that share the same speed and duplex settings.
> +Utilizes all slaves in the active aggregator according to the 802.3ad
> +specification. DPDK realize it based on 802.1AX specification, it
> +includes LACP protocal and Marker protocol. This mode requires a switch
> +that supports IEEE 802.3ad Dynamic link aggregation.
> +
> +note: Slave selection for outgoing traffic is done according to the
> +transmit hash policy, which may be changed from the default simple XOR
> layer2 policy.
> +
> +Requirements
> +------------
> +
> +#. Bonded ports shall maintain statistics similar to normal port.
> +
> +#. The slave links shall be monitor for link status change. See also the concept
> + of up/down time delay to handle situations such as a switch reboots, it is
> + possible that its ports report "link up" status before they become usable.
> +
> +#. Upon unbonding the bonding PMD driver must restore the MAC addresses
> that the
> + slaves had before they were enslaved.
> +
> +#. According to the bond type, when the bond interface is placed in
> promiscuous
> + mode it will propagate the setting to the slave devices.
> +
> +#. LACP control packet filtering offload. It is a idea of performance
> + improvement, which use hardware offloads to improve packet classification.
> +
> +#. support three 802.3ad aggregation selection logic modes (stable/bandwidth/
> + count). The Selection Logic selects a compatible Aggregator for a port, using
> + the port LAG ID. The Selection Logic may determine that the link should be
> + operated as a standby link if there are constraints on the simultaneous
> + attachment of ports that have selected the same Aggregator.
> +
> +#. technical details refer to content attached in website::
> +
> + http://dpdk.org/ml/archives/dev/2017-May/066143.html
> +
> +#. DPDK technical details refer to::
> +
> + dpdk/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst:
> + ``Link Aggregation 802.3AD (Mode 4)``
> +
> +#. linux technical document of 802.3ad as testing reference document::
> +
> +
> + https://www.kernel.org/doc/Documentation/networking/bonding.txt:``802.
> + 3ad``
> +
> +Prerequisites for Bonding
> +=========================
> +all link ports of switch/dut should be the same data rate and support full-duplex.
> +
> +Functional testing hardware configuration
> +-----------------------------------------
> +NIC and DUT ports requirements:
> +
> +- Tester: 2 ports of nic
> +- DUT: 2 ports of nic
> +
> +port topology diagram::
> +
> + Tester DUT
> + .-------. .-------.
> + | port0 | <------------------> | port0 |
> + | port1 | <------------------> | port1 |
> + '-------' '-------'
> +
> +Test Case : basic behavior start/stop
> +=====================================
> +#. check bonded device stop/start action under frequency operation
> +status
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> +
> +#. loop execute this step 10 times, check if bonded device still work::
> +
> + testpmd> port stop all
> + testpmd> port start all
> + testpmd> start
> + testpmd> show bonding config 2
> + testpmd> stop
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior mac
> +==============================
> +#. bonded device's default mac is one of each slave's mac after one slave has
> + been added.
> +#. when no slave attached, mac should be 00:00:00:00:00:00 #. slave's
> +mac restore the MAC addresses that the slave has before they were
> +enslaved.
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> +
> +#. check bond device mac should be 00:00:00:00:00:00::
> +
> + testpmd> show bonding config 2
> +
> +#. add two slaves to bond port::
> +
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> + testpmd> port start all
> +
> +#. check bond device mac should be one of each slave's mac::
> +
> + testpmd> show bonding config 0
> + testpmd> show bonding config 1
> + testpmd> show bonding config 2
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior link up/down
> +=======================================
> +#. bonded device should be down status without slaves.
> +#. bonded device device should have the same status of link status.
> +#. Active Slaves status should change with the slave status change.
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> +
> +#. stop bonded device and check bonded device/slaves link status::
> +
> + testpmd> port stop 2
> + testpmd> show bonding config 2
> + testpmd> show bonding config 1
> + testpmd> show bonding config 0
> +
> +#. start bonded device and check bonded device/slaves link status::
> +
> + testpmd> port start 2
> + testpmd> show bonding config 2
> + testpmd> show bonding config 1
> + testpmd> show bonding config 0
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior promiscuous mode
> +============================================
> +#. bonded device promiscuous mode should be ``enabled`` by default.
> +#. bonded device/slave device should have the same status of promiscuous
> mode.
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> +
> +#. check if bonded device promiscuous mode is ``enabled``::
> +
> + testpmd> show bonding config 2
> +
> +#. add two slaves and check if promiscuous mode is ``enabled``::
> +
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> + testpmd> show bonding config 0
> + testpmd> show bonding config 1
> +
> +#. disable bonded device promiscuous mode and check promiscuous mode::
> +
> + testpmd> set promisc 2 off
> + testpmd> show bonding config 2
> +
> +#. enable bonded device promiscuous mode and check promiscuous mode::
> +
> + testpmd> set promisc 2 on
> + testpmd> show bonding config 2
> +
> +#. check slaves' promiscuous mode::
> +
> + testpmd> show bonding config 0
> + testpmd> show bonding config 1
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior agg mode
> +===================================
> +#. stable is the default agg mode.
> +#. check 802.3ad aggregation mode configuration, support <agg_option>::
> + ``count``
> + ``stable``
> + ``bandwidth``
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> + testpmd> port start all
> + testpmd> show bonding config 2
> + testpmd> set bonding agg_mode 2 <agg_option>
> +
> +#. check if agg_mode set successful::
> +
> + testpmd> show bonding config 2
> + Bonding mode: 4
> + IEEE802.3AD Aggregator Mode: <agg_option>
> + Slaves (2): [0 1]
> + Active Slaves (2): [0 1]
> + Primary: [0]
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : basic behavior dedicated queues
> +===========================================
> +#. check 802.3ad dedicated queues is ``disable`` by default #. check
> +802.3ad set dedicated queues, support <agg_option>::
> + ``disable``
> + ``enable``
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd::
> +
> + ./testpmd -c 0xXXXXX -n 4 -- -i --tx-offloads=0xXXXX
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> + testpmd> create bonded device 4 0
> + testpmd> add bonding slave 0 2
> + testpmd> add bonding slave 1 2
> + testpmd> show bonding config 2
> +
> +#. check if dedicated_queues disable successful::
> +
> + testpmd> set bonding lacp dedicated_queues 2 disable
> +
> +#. check if bonded port can start::
> +
> + testpmd> port start all
> + testpmd> start
> +
> +#. check if dedicated_queues enable successful::
> +
> + testpmd> stop
> + testpmd> port stop all
> + testpmd> set bonding lacp dedicated_queues 2 enable
> +
> +#. check if bonded port can start::
> +
> + testpmd> port start all
> + testpmd> start
> +
> +#. quit testpmd::
> +
> + testpmd> stop
> + testpmd> quit
> +
> +Test Case : command line option
> +===============================
> +#. check command line option::
> +
> + slave=<0000:xx:00.0>
> + agg_mode=<bandwidth | stable | count>
> +
> +#. compare bonding configuration with expected configuration.
> +
> +steps
> +-----
> +
> +#. bind two ports::
> +
> + ./usertools/dpdk-devbind.py --bind=igb_uio <pci address 1> <pci
> + address 2>
> +
> +#. boot up testpmd ::
> +
> + ./testpmd -c 0x0f -n 4 \
> + --vdev
> 'net_bonding0,slave=0000:xx:00.0,slave=0000:xx:00.1,mode=4,agg_mode=<agg
> _option>' \
> + -- -i --port-topology=chained
> +
> +#. run testpmd command of bonding::
> +
> + testpmd> port stop all
> +
> +#. check if bonded device has been created and slaves have been bonded
> successful::
> +
> + testpmd> show bonding config 2
> + Bonding mode: 4
> + IEEE802.3AD Aggregator Mode: <agg_option>
> + Slaves (2): [0 1]
> + Active Slaves (2): [0 1]
> + Primary: [0]
> +
> +#. check if bonded port can start::
> +
> + testpmd> port start all
> + testpmd> start
> +
> +#. check if dedicated_queues enable successful::
> +
> + testpmd> stop
> + testpmd> port stop all
> +
> +#. quit testpmd::
> +
> + testpmd> quit
> \ No newline at end of file
> --
> 1.9.3
^ permalink raw reply [flat|nested] 4+ messages in thread