From: "Liu, Jijiang" <jijiang.liu@intel.com>
To: "Liu, Jijiang" <jijiang.liu@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH RFC 00/10] Add a VXLAN sample
Date: Tue, 28 Apr 2015 03:31:23 +0000 [thread overview]
Message-ID: <1ED644BD7E0A5F4091CF203DAFB8E4CC05741598@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <1429156558-28548-1-git-send-email-jijiang.liu@intel.com>
Hi All,
So far, I have not got any comments yet, which means all of you agree on the proposal of the VXLAN example?
Actually, if I can get your comments as soon as possible, which can avoid a lot of discussions in formal patch set and can accelerate the development.
Thanks
Jijiang Liu
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jijiang Liu
> Sent: Thursday, April 16, 2015 11:56 AM
> To: dev@dpdk.org; Gilmore, Walter E; Long, Thomas
> Subject: [dpdk-dev] [PATCH RFC 00/10] Add a VXLAN sample
>
> This VXLAN example simulates a VXLAN Tunnel endpoint(VTEP) termination in
> DPDK, which is used to demonstrate the offload and filtering capabilities of i40
> NIC for VXLAN packet.
>
> And this example uses the basic virtio devices management function from vHost
> example, and it uses us-Vhost interface and tunnel filtering mechanism to direct
> the traffic to/from a specific VM.
>
> In addition, this sample is also designed to show how tunneling protocols can be
> handled. For the vHost interface, we do not need to support zero copy/inter VM
> packet transfer etc. The approach that we take would be of benefit to you in
> that we put a pluggable structure in place so that the application could be easily
> extended to support a new tunneling protocol.
>
> The software framework is as follows:
>
> |-------------------| |-------------------|
> | VM-1(VNI:100) | | VM-2(VNI:200) |
> | |------| |------| | | |------| |------| |
> | |vport0| |vport1| | | |vport0| |vport1| |
> |-|------|-|------|-| |-|------|-|------|-| Guests
> \ /
> |-------------\-------/--------|
> | us-vHost interface |
> | |-|----|--| |
> | decap| | TEP| | encap | DPDK App
> | |-|----|--| |
> | | | |
> |------------|----|------------|
> | |
> |-------------|----|---------------|
> |tunnel filter| | IP/L4 Tx csum |
> |IP/L4 csum | | TSO |
> |packet type | | | NIC
> |CRC strip | | |
> |-------------|----|---------------|
> | |
> | |
> | |
> /-------\
> VXLAN Tunnel
>
> The sample will support the followings:
> 1> Tunneling packet recognition.
>
> 2> The port of UDP tunneling is configurable
>
> 3> Directing of incoming traffic to the correct queue based on the tunnel filter
> type such as inner MAC address and VNI.
> The VNI will be assigned from a static internal table based on the us-
> vhost device ID. Each device will receive a unique device ID. The inner MAC will
> be learned from the first packet transmitted from a device.
>
> 4> Decapsulation of Rx VXLAN traffic. This is a software only
> 4> operation(will use HW header split instead later)
>
> 5> Encapsulation of Tx VXLAN traffic. This is a software only operation
>
> 6> Tx outer IP, inner IP and L4 checksum offload
>
> 7> TSO support for tunneling packet
>
> Limitations:
> 1. No ARP support
> 2. There are some duplicated source codes because of using the basic virtio
> device management function from vhost sample, but consider that current vhost
> sample is quite complicated and huge enough, and I think we shall have a
> separate sample for tunneling packet processing.
> 3. Currently, only the i40e NIC is supported in the sample, but other types of
> NICs also can be supported later if those NICs are able to support tunneling
> packet filter.
>
>
> Jijiang Liu (10):
> create VXLAN sample framework using virtio device management function
> add basic VXLAN structures
> add VXLAN operation APIs
> support overlay operations
> Add encapsulation and decapsulation function
> add udp port configuration
> add filter type configuration
> add tx checksum offload configuration
> add TSO offload configuration
> add encapsulation and decapsulation flags
>
> examples/Makefile | 1 +
> examples/tep_termination/Makefile | 58 ++
> examples/tep_termination/main.c | 1117
> ++++++++++++++++++++++++++++++++
> examples/tep_termination/main.h | 113 ++++
> examples/tep_termination/vxlan.c | 242 +++++++
> examples/tep_termination/vxlan.h | 81 +++
> examples/tep_termination/vxlan_setup.c | 453 +++++++++++++
> examples/tep_termination/vxlan_setup.h | 76 +++
> 8 files changed, 2141 insertions(+), 0 deletions(-) create mode 100644
> examples/tep_termination/Makefile create mode 100644
> examples/tep_termination/main.c create mode 100644
> examples/tep_termination/main.h create mode 100644
> examples/tep_termination/vxlan.c create mode 100644
> examples/tep_termination/vxlan.h create mode 100644
> examples/tep_termination/vxlan_setup.c
> create mode 100644 examples/tep_termination/vxlan_setup.h
>
> --
> 1.7.7.6
prev parent reply other threads:[~2015-04-28 3:31 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-16 3:55 Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 01/10] examples/tep_termination:initialize the VXLAN example Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 02/10] examples/tep_termination:define VXLAN device information and APIs Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 03/10] examples/tep_termination:add the pluggable structures for VXLAN packet processing Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 04/10] examples/tep_termination:implement " Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 05/10] examples/tep_termination:implement the APIs of encapsulation and decapsulation for VXLAN Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 06/10] examples/tep_termination:add UDP port configuration for UDP tunneling packet Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 07/10] examples/tep_termination:add tunnel filter type configuration Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 08/10] examples/tep_termination:add Tx checksum offload configuration for inner header Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 09/10] examples/tep_termination:add TSO offload configuration Jijiang Liu
2015-04-16 3:55 ` [dpdk-dev] [PATCH RFC 10/10] examples/tep_termination:add the configuration for encapsulation and the decapsulation Jijiang Liu
2015-04-20 7:22 ` [dpdk-dev] [PATCH RFC 00/10] Add a VXLAN sample Liu, Jijiang
2015-04-28 3:31 ` Liu, Jijiang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1ED644BD7E0A5F4091CF203DAFB8E4CC05741598@SHSMSX101.ccr.corp.intel.com \
--to=jijiang.liu@intel.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).