From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 0C561902 for ; Mon, 8 Jun 2015 10:34:39 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP; 08 Jun 2015 01:34:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,573,1427785200"; d="scan'208";a="504665316" Received: from pgsmsx103.gar.corp.intel.com ([10.221.44.82]) by FMSMGA003.fm.intel.com with ESMTP; 08 Jun 2015 01:34:22 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by PGSMSX103.gar.corp.intel.com (10.221.44.82) with Microsoft SMTP Server (TLS) id 14.3.224.2; Mon, 8 Jun 2015 16:34:21 +0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.94]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.23]) with mapi id 14.03.0224.002; Mon, 8 Jun 2015 16:34:20 +0800 From: "Zhang, Helin" To: "Liu, Jijiang" Thread-Topic: [dpdk-dev] [PATCH v3 00/10] Add a VXLAN sample Thread-Index: AQHQoZe4LIU0saciQE6eDRVesN7roJ2iSHHA Date: Mon, 8 Jun 2015 08:34:19 +0000 Message-ID: References: <1433732508-32430-1-git-send-email-jijiang.liu@intel.com> In-Reply-To: <1433732508-32430-1-git-send-email-jijiang.liu@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v3 00/10] Add a VXLAN sample X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jun 2015 08:34:40 -0000 Acked-by: Helin Zhang Thanks for the good example! > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jijiang Liu > Sent: Monday, June 8, 2015 11:02 AM > To: dev@dpdk.org > Subject: [dpdk-dev] [PATCH v3 00/10] Add a VXLAN sample >=20 > This VXLAN sample 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. >=20 > And this sample uses the basic virtio devices management function from vH= ost > example, and the US-vHost interface and tunnel filtering mechanism to dir= ect the > traffic to/from a specific VM. >=20 > 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/int= er VM > packet transfer, etc. The approaches we took would be of benefit to you b= ecause > we put a pluggable structure in place so that the application could be ea= sily > extended to support a new tunneling protocol. >=20 > The software framework is as follows: >=20 >=20 > |-------------------| |-------------------| > | 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 > |packet recogn| | | > |-------------|----|---------------| > | | > | | > | | > /-------\ > VXLAN Tunnel >=20 > The sample will support the followings: > 1> Tunneling packet recognition. >=20 > 2> The port of UDP tunneling is configurable >=20 > 3> Directing incoming traffic to the correct queue based on the tunnel fi= lter type > such as inner MAC address and VNI. >=20 > The VNI will be assigned from a static internal table based on the us-vH= ost > device ID. Each device will receive a unique device ID. The inner MAC wil= l be > learned by the first packet transmitted from a device. >=20 > 4> Decapsulation of Rx VXLAN traffic. This is a software only operation. >=20 > 5> Encapsulation of Tx VXLAN traffic. This is a software only operation. >=20 > 6> Tx outer IP, inner IP and L4 checksum offload >=20 > 7> TSO support for tunneling packet >=20 > The limitations: > 1. No ARP support. > 2. There are some duplicated source codes because I used the basic virti= o > device management function from VHOST sample. Considering that the curren= t > VHOST sample is quite complicated and huge enough, I think we shall have= a > separate sample for tunneling packet processing. > 3. Currently, only the i40e NIC is tested in the sample, but other types = of NICs will > also be supported if they are able to support tunneling packet filter. >=20 > v2 changes: > Fixed an issue about the 'nb_ports' duplication in check_ports_num(). > Removed the inaccurate comment in main.c > Fixed an issue about TSO offload. >=20 > v3 changes: > Changed some viriable name that don't follow coding rules. > Removed the limitation of VXLAN packet size due to TSO support. > Removed useless 'll_root_used' variable in vxlan_setup.c file. > Removed defination and use of '_htons'. >=20 > Jijiang Liu (10): > create VXLAN sample framework using virtio device management function > add basic VXLAN structures > addthe pluggable structures > implement VXLAN packet processing > add udp port configuration > add filter type configuration > add tx checksum offload configuration > add TSO offload configuration > add Rx checksum statistics > add encapsulation and decapsulation flags >=20 >=20 > examples/Makefile | 1 + > examples/tep_termination/Makefile | 55 ++ > examples/tep_termination/main.c | 1205 > ++++++++++++++++++++++++++++++++ > examples/tep_termination/main.h | 129 ++++ > examples/tep_termination/vxlan.c | 262 +++++++ > examples/tep_termination/vxlan.h | 76 ++ > examples/tep_termination/vxlan_setup.c | 444 ++++++++++++ > examples/tep_termination/vxlan_setup.h | 77 ++ > 8 files changed, 2249 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 >=20 > -- > 1.7.7.6