[dpdk-dev] [PATCH v4 0/7] support E-tag offloading and forwarding on Intel X550 NIC

Liu, Yong yong.liu at intel.com
Fri Mar 4 10:23:10 CET 2016


Tested-by: Yong Liu <yong.liu at intel.com>

- Tested Branch: dpdk-next-net
- Tested Commit: 5fa83b5398e26af7537b09605432fcb3d0cc1d41
- OS: Fedora21 3.17.4-301.fc21.x86_64
- GCC: gcc version 4.9.2 20150212
- CPU: Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz
- NIC: Intel Corporation Device Sageville [8086:15ad]
- Default x86_64-native-linuxapp-gcc configuration
- Total 4 cases, 4 passed, 0 failed

- Prerequisites command / instruction:
  Bound PF device to igb_uio
    ./tools/dpdk_nic_bind.py --bind=igb_uio 03:00.0
  Create 2VF devices from PF device.
    echo 2 > /sys/bus/pci/devices/0000\:03\:00.0/max_vfs
  Detach VFs from the host, bind them to pci-stub driver
    virsh # nodedev-dettach pci_0000_03_10_0
    virsh # nodedev-dettach pci_0000_03_10_2
  Passthrough VF 03:10.0 & 03:10.2 to vm0 and start vm0
    /usr/bin/qemu-system-x86_64  -name vm0 -enable-kvm \
    -cpu host -smp 4 -m 2048 -drive file=/home/image/fedora20.img -vnc :1 \
    -device pci-assign,host=03:10.0 \
    -device pci-assign,host=03:10.2
  Login vm0 and them bind VF devices to igb_uio driver.
    ./tools/dpdk_nic_bind.py --bind=igb_uio 00:04.0 00:05.0
  Bind PF to vfio-pci and start testpmd in host
    testpmd -c f -n 3 -- -i
  Config to rxonly mode and enable verbose output
    testpmd> set fwd rxonly
    testpmd> set verbose 1
    testpmd> start
  Start testpmd in guest, configured to mac forward mode
    testpmd -c 0x3 -n 1  -- -i  --txqflags=0x0
    testpmd> set fwd mac
    testpmd> start

- Case: E-tag tunnel filter
  Description: check that E-tag tunnel filter can work as expected
  Command / instruction:
    Enable E-tag l2 tunnel support means enabling ability of parsing E-tag
    packet. This ability should be enabled before we enable filtering,
    forwarding, offloading for this specific type of tunnel
      host testpmd> port config 0 l2-tunnel E-tag enable
    Send 802.1BR packet to PF and VFs, check packet normally received

- Case: E-tag filter and forwarding
  Description: check that E-tag forwarding work as expected
  Command / instruction:
    Enable E-tag packet forwarding and enable E-tag 1000 packet forward to VF0
      testpmd> E-tag set forwarding on port 0
      testpmd> E-tag set filter add e-tag-id 1000 dst-pool 0 port 0
    Send E-tag packet with broadcast mac and check packet only received on VF0
  
    Set E-tag with ID 1000 forwarding to VF1
      testpmd> E-tag set filter add e-tag-id 1000 dst-pool 1 port 0
    Send 802.1BR packet with broadcast mac and check packet only received on VF1

    Set E-tag with ID 1000 PF0
      testpmd> E-tag set filter add e-tag-id 1000 dst-pool 2 port 0
    Send 802.1BR packet with broadcast mac and check packet only received on PF
    
    Remove E-tag
      testpmd> E-tag set filter del e-tag-id 1000 port 0
    Send 802.1BR packet with broadcast mac and check packet not received

- Case: E-tag insertion
  Description: check that E-tag insertion feature can work as expected
  Command / instruction:
    Enable E-tag insertion in VF0
      testpmd> E-tag set insertion on port-tag-id 1000 port 0 vf 0
    Send normal packet to VF1 and check forwarded packet contain E-tag
    Remove E-tag insertion in VF0
      testpmd> E-tag set insertion off port 0 vf 0
    Send normal packet to VF1 and check forwarded packet not include E-tag
    
- Case: E-tag strip
  Description: check that E-tag strip feature can work as expected
    Enable E-tag strip on PF
      testpmd> E-tag set filter add e-tag-id 1000 dst-pool 0 port 0
      testpmd> E-tag set stripping on port 0
    Send 802.1BR packet to VF and check forwarded packet without E-tag
    Disable E-tag strip on PF
      testpmd> E-tag set stripping off port 0
    Send 802.1BR packet and check forwarded packet with E-tag.

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Wenzhuo Lu
> Sent: Thursday, February 18, 2016 10:46 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH v4 0/7] support E-tag offloading and
> forwarding on Intel X550 NIC
> 
> This patch set adds the support of E-tag offloading and forwarding
> on X550.
> The offloading means E-tag can be inserted and stripped by HW.
> And E-tag packets can be recognized and forwarded to specific pools
> based on GRP and E-CID_base in E-tag.
> 
> E-tag is defined in IEEE802.1br. Please reference
> http://www.ieee802.org/1/pages/802.1br.html.
> 
> V2:
> * Add the introduction for E-tag.
> 
> V3:
> * Add the hlep info for the new CLIs.
> * Update the doc for testpmd.
> * Update the E-tag insertion setting. Should insert different tunnel
>   id for every VF, not a common one for all.
> 
> V4:
> * Fix strippig is not working issue.
> * Update the filter adding function. Make sure there's only one filter
>   entry for one tunnel entry.
> * Update the release note to add some info about how to use this feature.
> 
> Wenzhuo Lu (7):
>   ixgbe: select pool by MAC when using double VLAN
>   lib/librte_ether: support l2 tunnel config
>   ixgbe: support l2 tunnel config
>   app/testpmd: add CLIs for l2 tunnel config
>   lib/librte_ether: support new l2 tunnel operation
>   ixgbe: support l2 tunnel operation
>   app/testpmd: add CLIs for E-tag operation
> 
>  app/test-pmd/cmdline.c                      | 647
> +++++++++++++++++++++++++++-
>  doc/guides/rel_notes/release_16_04.rst      |  21 +
>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  37 ++
>  drivers/net/ixgbe/ixgbe_ethdev.c            | 521 ++++++++++++++++++++++
>  lib/librte_ether/rte_eth_ctrl.h             |   9 +
>  lib/librte_ether/rte_ethdev.c               | 244 +++++++++++
>  lib/librte_ether/rte_ethdev.h               | 298 +++++++++++++
>  7 files changed, 1776 insertions(+), 1 deletion(-)
> 
> --
> 1.9.3



More information about the dev mailing list