From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id A9513C4CE for ; Tue, 28 Apr 2015 05:31:28 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP; 27 Apr 2015 20:31:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,661,1422950400"; d="scan'208";a="720224870" Received: from pgsmsx104.gar.corp.intel.com ([10.221.44.91]) by orsmga002.jf.intel.com with ESMTP; 27 Apr 2015 20:31:26 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by PGSMSX104.gar.corp.intel.com (10.221.44.91) with Microsoft SMTP Server (TLS) id 14.3.224.2; Tue, 28 Apr 2015 11:31:25 +0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.107]) by shsmsx102.ccr.corp.intel.com ([10.239.4.154]) with mapi id 14.03.0224.002; Tue, 28 Apr 2015 11:31:24 +0800 From: "Liu, Jijiang" To: "Liu, Jijiang" Thread-Topic: [dpdk-dev] [PATCH RFC 00/10] Add a VXLAN sample Thread-Index: AQHQd/lr9/KB+UIVLk+PG7I5d6i1op1h0rtg Date: Tue, 28 Apr 2015 03:31:23 +0000 Message-ID: <1ED644BD7E0A5F4091CF203DAFB8E4CC05741598@SHSMSX101.ccr.corp.intel.com> References: <1429156558-28548-1-git-send-email-jijiang.liu@intel.com> In-Reply-To: <1429156558-28548-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 RFC 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: Tue, 28 Apr 2015 03:31:29 -0000 Hi All, So far, I have not got any comments yet, which means all of you agree on t= he proposal of the VXLAN example?=20 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 =20 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 >=20 > 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. >=20 > And this example uses the basic virtio devices management function from v= Host > example, and it uses us-Vhost interface and tunnel filtering mechanism to= direct > 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 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. >=20 > The software framework is as follows: >=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 > |CRC strip | | | > |-------------|----|---------------| > | | > | | > | | > /-------\ > 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 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 M= AC will > be learned from the first packet transmitted from a device. >=20 > 4> Decapsulation of Rx VXLAN traffic. This is a software only > 4> operation(will use HW header split instead later) >=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 > Limitations: > 1. No ARP support > 2. There are some duplicated source codes because of using the basic virt= io > device management function from vhost sample, but consider that current v= host > 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 typ= es of > NICs also can be supported later if those NICs are able to support tunnel= ing > packet filter. >=20 >=20 > 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 >=20 > 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 >=20 > -- > 1.7.7.6