* [dts] [PATCH] add DDP and MPLS test plan
@ 2017-04-11 1:05 Xueqin Lin
2017-04-20 6:21 ` Liu, Yong
0 siblings, 1 reply; 2+ messages in thread
From: Xueqin Lin @ 2017-04-11 1:05 UTC (permalink / raw)
To: dts; +Cc: Xueqin Lin
---
test_plans/ddp_mpls_test_plan.rst | 195 ++++++++++++++++++++++++++++++++++++++
1 file changed, 195 insertions(+)
create mode 100644 test_plans/ddp_mpls_test_plan.rst
diff --git a/test_plans/ddp_mpls_test_plan.rst b/test_plans/ddp_mpls_test_plan.rst
new file mode 100644
index 0000000..d2f1cab
--- /dev/null
+++ b/test_plans/ddp_mpls_test_plan.rst
@@ -0,0 +1,195 @@
+ Copyright (c) <2017>, 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.
+
+============================
+Introduction
+============================
+FVL6 supports DDP(Dynamic Device Personalization) to program analyzer/parser
+via AdminQ. Profile can be used to update FVL configuration tables via MMIO
+configuration space, not microcode or firmware itself. For microcode/FW
+changes new HW/FW/NVM image must be uploaded to the NIC. Profiles will be
+stored in binary files and need to be passed to AQ to program FVL during
+initialization stage.
+
+With DDP, MPLS(Multi-protocal Label Switching) can be supported by NVM with
+profile updated.
+Below HW features have be enabled for MPLS:
+ - MPLS packet type recognition
+ - Cloud filter for MPLS with MPLS label
+Only 25G NIC supports DDP and MPLS so far.
+
+Prerequisites
+=============
+1. Host PF in DPDK driver. Create 1 VF from 1 PF with DPDK driver::
+ ./tools/dpdk-devbind.py -b igb_uio 81:00.0
+ echo 1 >/sys/bus/pci/devices/0000:81:00.0/max_vfs
+
+2. Detach VF from the host::
+ rmmod i40evf
+
+3. Pass through VF 81:10.0 to vm0, start vm0.
+
+4. Login vm0, then bind VF0 device to igb_uio driver.
+
+5. Start testpmd on host and vm0 in chained port topology, add txq/rxq to
+ enable multi-queues. In general, PF's max queue is 64, VF's max queue
+ is 4::
+ ./testpmd -c f -n 4 -- -i --port-topology=chained --txqflags=0
+ --txq=4 --rxq=4
+
+
+Test Case 1: Load dynamic device personalization
+==================================================
+1. Stop testpmd port before loading profile::
+ testpmd > stop port all
+
+2. Load profile mplsogre-l2.pkgo which is a binary file::
+ testpmd > ddp add (port_id) (profile_path
+
+3. Check profile info successfully::
+ testpmd > ddp get list (port_id)
+
+4. Start testpmd port::
+ testpmd > start port all
+
+Note::
+Loading ddp is the prerequisite for below MPLS relatived cases, operate global
+reset or lanconf tool to recover original setting. Global Reset Trigger reg is
+0xb8190, first cmd is core reset, second cmd is global reset::
+ testpmd > write reg 0 0xb8190 1
+ testpmd > write reg 0 0xb8190 2
+
+
+Test Case 2: MPLS udp packet for PF
+==================================================
+1. Add udp flow rule for PF, set label as random 20 bits, queue should be among
+ configured queue number::
+ testpmd > flow create 0 ingress pattern eth / ipv4 / udp / mpls label
+ is 0x12345 / end actions pf / queue index <id> / end
+
+2. Set fwd rxonly, enable output and start PF and VF testpmd
+
+3. Send udp MPLS packet with good checksum, udp dport is 6635, label is same
+ as configured rule::
+ sendp([Ether()/IP()/UDP(dport=6635)/MPLS(label=0x12345)/Ether()/IP()
+ /TCP()], iface=txItf)
+
+4. Check PF could receive configured label udp packet, checksum is good,
+ queue is configured queue
+
+5. Send udp MPLS packet with bad checksum, udp dport is 6635, label is same
+ as configured rule::
+ sendp([Ether()/IP()/UDP(chksum=0x1234,dport=6635)/MPLS(label=0x12345)/Ether()
+ /IP()/TCP()], iface=txItf)
+
+6. Check PF could receive configured label udp packet, checksum is good, queue is
+ configured queue
+
+
+Test Case 3: MPLS gre packet for PF
+==================================================
+1. Add gre flow rule for PF, set label as random 20 bits, queue should be among
+ configured queue number::
+ testpmd > flow create 0 ingress pattern eth / ipv4 / gre / mpls label is
+ 0xee456 / end actions pf / queue index <id> / end
+
+2. Set fwd rxonly, enable output and start PF and VF testpmd
+
+3. Send gre MPLS packet with good checksum, gre proto is 8847, label is same
+ as configured rule::
+ sendp([Ether()/IP(proto=47)/GRE(proto=0x8847)/MPLS(label=0xee456)/Ether()
+ /IP()/UDP()], iface=txItf)
+
+4. Check VF could receive configured label gre packet, checksum is good, queue
+ is configured queue
+
+5. Send gre MPLS packet with bad checksum, gre proto is 8847, label is same as
+ configured rule::
+ sendp([Ether()/IP(proto=47)/GRE(chksum=0x1234,proto=0x8847)/MPLS(label=0xee456)
+ /Ether()/IP()/UDP()], iface=txItf)
+
+6. Check VF could receive configured label gre packet, checksum is good, queue is
+ configured queue
+
+
+Test Case 4: MPLS udp packet for VF
+==================================================
+1. Add udp flow rule for VF, set label as random 20 bits, queue should be among
+ configured queue number::
+ testpmd > flow create 0 ingress pattern eth / ipv4 / udp / mpls label is 0x234
+ / end actions vf id 0 / queue index <id> / end
+
+2. Set fwd rxonly, enable output and start PF and VF testpmd
+
+3. Send udp MPLS packet with good checksum, udp dport is 6635, label is same as
+ configured rule::
+ sendp([Ether()/IP()/UDP(dport=6635)/MPLS(label=0x234)/Ether()/IP()/TCP()],
+ iface=txItf)
+
+4. Check VF could receive configured label udp packet, checksum is good, queue is
+ configured queue
+
+5. Send udp MPLS packet with bad checksum, udp dport is 6635, label is same as
+ configured rule::
+ sendp([Ether()/IP()/UDP(chksum=0x1234,dport=6635)/MPLS(label=0x234)/Ether()
+ /IP()/TCP()], iface=txItf)
+
+6. Check VF could receive configured label udp packet, checksum is good, queue is
+ configured queue
+
+
+Test Case 5: MPLS gre packet for VF
+==================================================
+1. Add gre flow rule for VF, set label as random 20 bit, queue should be among
+ configured queue number::
+ testpmd > flow create 0 ingress pattern eth / ipv4 / gre / mpls label is
+ 0xffff / end actions vf id 0 / queue index <id> / end
+
+2. Set fwd rxonly, enable output and start PF and VF testpmd
+
+3. Send gre MPLS packet with good checksum, gre proto is 8847, label is same as
+ configured rule::
+ sendp([Ether()/IP(proto=47)/GRE(proto=0x8847)/MPLS(label=0xffff)/Ether()
+ /IP()/UDP()], iface=txItf)
+
+4. Check VF could receive configured label gre packet, checksum is good, queue is
+ configured queue
+
+5. Send gre MPLS packet with bad checksum, gre proto is 8847, label is same as
+ configured rule::
+ sendp([Ether()/IP(proto=47)/GRE(chksum=0x1234,proto=0x8847)/MPLS(label=0xffff)
+ /Ether()/IP()/UDP()], iface=txItf)
+
+6. Check VF could receive configured label gre packet, checksum is good, queue is
+ configured queue
+
+
--
2.5.5
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [dts] [PATCH] add DDP and MPLS test plan
2017-04-11 1:05 [dts] [PATCH] add DDP and MPLS test plan Xueqin Lin
@ 2017-04-20 6:21 ` Liu, Yong
0 siblings, 0 replies; 2+ messages in thread
From: Liu, Yong @ 2017-04-20 6:21 UTC (permalink / raw)
To: Xueqin Lin, dts
Thanks, applied.
On 04/11/2017 09:05 AM, Xueqin Lin wrote:
> ---
> test_plans/ddp_mpls_test_plan.rst | 195 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 195 insertions(+)
> create mode 100644 test_plans/ddp_mpls_test_plan.rst
>
> diff --git a/test_plans/ddp_mpls_test_plan.rst b/test_plans/ddp_mpls_test_plan.rst
> new file mode 100644
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-04-20 6:32 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-11 1:05 [dts] [PATCH] add DDP and MPLS test plan Xueqin Lin
2017-04-20 6:21 ` Liu, Yong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).