From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by dpdk.org (Postfix) with ESMTP id 37AE058E4 for ; Thu, 5 Jun 2014 13:01:04 +0200 (CEST) Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 05 Jun 2014 04:01:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.98,980,1392192000"; d="scan'208";a="441214363" Received: from irsmsx101.ger.corp.intel.com ([163.33.3.153]) by azsmga001.ch.intel.com with ESMTP; 05 Jun 2014 04:01:13 -0700 Received: from irsmsx103.ger.corp.intel.com ([169.254.3.58]) by IRSMSX101.ger.corp.intel.com ([169.254.1.245]) with mapi id 14.03.0123.003; Thu, 5 Jun 2014 12:01:12 +0100 From: "De Lara Guarch, Pablo" To: "Dumitrescu, Cristian" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [v2 00/23] Packet Framework Thread-Index: AQHPgCAyyokALu/LkEWAkY49yhr1gJtiWp5g Date: Thu, 5 Jun 2014 11:01:11 +0000 Message-ID: References: <1401905319-8882-1-git-send-email-cristian.dumitrescu@intel.com> In-Reply-To: <1401905319-8882-1-git-send-email-cristian.dumitrescu@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [v2 00/23] Packet Framework 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: Thu, 05 Jun 2014 11:01:05 -0000 Acked-by: Pablo de Lara Guarch > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Cristian Dumitrescu > Sent: Wednesday, June 04, 2014 7:08 PM > To: dev@dpdk.org > Subject: [dpdk-dev] [v2 00/23] Packet Framework >=20 > (Version 2 changes are exclusively style changes (checkpatch.pl) and patc= h > consolidation, no functional change) >=20 > Intel DPDK Packet Framework provides a standard methodology (logically > similar to OpenFlow) for rapid development of complex packet processing > pipelines out of ports, tables and actions. >=20 > A pipeline is constructed by connecting its input ports to its output por= ts > through a chain of lookup tables. As result of lookup operation into the > current table, one of the table entries (or the default table entry, in c= ase of > lookup miss) is identified to provide the actions to be executed on the > current packet and the associated action meta-data. The behavior of user > actions is defined through the configurable table action handler, while t= he > reserved actions define the next hop for the current packet (either anoth= er > table, an output port or packet drop) and are handled transparently by th= e > framework. >=20 > Three new Intel DPDK libraries are introduced for Packet Framework: > librte_port, librte_table, librte_pipeline. Please check the Intel DPDK > Programmer's Guide for full description of the Packet Framework design. >=20 > Two sample applications are provided for Packet Framework: app/test- > pipeline and examples/ip_pipeline. Please check the Intel Sample Apps Gui= de > for a detailed description of how these sample apps. >=20 > Cristian Dumitrescu (23): > librte_lpm: rule_is_present > mbuf: meta-data > Packet Framework librte_port: Port API > Packet Framework librte_port: ethdev ports > Packet Framework librte_port: ring ports > Packet Framework librte_port: IPv4 frag port > Packet Framework librte_port: IPv4 reassembly > Packet Framework librte_port: hierarchical scheduler port > Packet Framework librte_port: Source/Sink ports > Packet Framework librte_port: Build infrastructure > Packet Framework librte_table: Table API > Packet Framework librte_table: LPM IPv4 table > Packet Framework librte_table: LPM IPv6 table > Packet Framework librte_table: ACL table > Packet Framework librte_table: Hash tables > Packet Framework librte_table: array table > Packet Framework librte_table: Stub table > Packet Framework librte_table: Build infrastructure > Packet Framework librte_pipeline: Pipeline > librte_cfgfile: interpret config files > Packet Framework performance application > Packet Framework IPv4 pipeline sample app > Packet Framework unit tests >=20 > app/Makefile | 1 + > app/test-pipeline/Makefile | 66 + > app/test-pipeline/config.c | 248 +++ > app/test-pipeline/init.c | 295 +++ > app/test-pipeline/main.c | 180 ++ > app/test-pipeline/main.h | 148 ++ > app/test-pipeline/pipeline_acl.c | 278 +++ > app/test-pipeline/pipeline_hash.c | 487 +++++ > app/test-pipeline/pipeline_lpm.c | 196 ++ > app/test-pipeline/pipeline_lpm_ipv6.c | 200 ++ > app/test-pipeline/pipeline_stub.c | 165 ++ > app/test-pipeline/runtime.c | 185 ++ > app/test/Makefile | 6 + > app/test/commands.c | 4 +- > app/test/test.h | 1 + > app/test/test_table.c | 220 +++ > app/test/test_table.h | 204 ++ > app/test/test_table_acl.c | 593 ++++++ > app/test/test_table_acl.h | 35 + > app/test/test_table_combined.c | 784 ++++++++ > app/test/test_table_combined.h | 55 + > app/test/test_table_pipeline.c | 603 ++++++ > app/test/test_table_pipeline.h | 35 + > app/test/test_table_ports.c | 224 +++ > app/test/test_table_ports.h | 42 + > app/test/test_table_tables.c | 907 +++++++++ > app/test/test_table_tables.h | 50 + > config/common_bsdapp | 25 + > config/common_linuxapp | 24 + > doc/doxy-api-index.md | 17 + > doc/doxy-api.conf | 3 + > examples/ip_pipeline/Makefile | 67 + > examples/ip_pipeline/cmdline.c | 1976 ++++++++++++++= ++++++ > examples/ip_pipeline/config.c | 420 +++++ > examples/ip_pipeline/init.c | 614 ++++++ > examples/ip_pipeline/ip_pipeline.cfg | 56 + > examples/ip_pipeline/ip_pipeline.sh | 18 + > examples/ip_pipeline/main.c | 171 ++ > examples/ip_pipeline/main.h | 306 +++ > examples/ip_pipeline/pipeline_firewall.c | 313 ++++ > .../ip_pipeline/pipeline_flow_classification.c | 306 +++ > examples/ip_pipeline/pipeline_ipv4_frag.c | 184 ++ > examples/ip_pipeline/pipeline_ipv4_ras.c | 181 ++ > examples/ip_pipeline/pipeline_passthrough.c | 213 +++ > examples/ip_pipeline/pipeline_routing.c | 474 +++++ > examples/ip_pipeline/pipeline_rx.c | 385 ++++ > examples/ip_pipeline/pipeline_tx.c | 283 +++ > lib/Makefile | 4 + > lib/librte_cfgfile/Makefile | 53 + > lib/librte_cfgfile/rte_cfgfile.c | 354 ++++ > lib/librte_cfgfile/rte_cfgfile.h | 195 ++ > lib/librte_eal/common/include/rte_hexdump.h | 2 + > lib/librte_eal/common/include/rte_log.h | 3 + > lib/librte_lpm/rte_lpm.c | 29 + > lib/librte_lpm/rte_lpm.h | 19 + > lib/librte_lpm/rte_lpm6.c | 31 + > lib/librte_lpm/rte_lpm6.h | 19 + > lib/librte_mbuf/rte_mbuf.h | 25 + > lib/librte_pipeline/Makefile | 54 + > lib/librte_pipeline/rte_pipeline.c | 1373 ++++++++++++++ > lib/librte_pipeline/rte_pipeline.h | 664 +++++++ > lib/librte_port/Makefile | 72 + > lib/librte_port/ipv4_frag_tbl.h | 403 ++++ > lib/librte_port/ipv4_rsmbl.h | 429 +++++ > lib/librte_port/rte_ipv4_frag.h | 253 +++ > lib/librte_port/rte_port.h | 190 ++ > lib/librte_port/rte_port_ethdev.c | 305 +++ > lib/librte_port/rte_port_ethdev.h | 86 + > lib/librte_port/rte_port_frag.c | 235 +++ > lib/librte_port/rte_port_frag.h | 94 + > lib/librte_port/rte_port_ras.c | 256 +++ > lib/librte_port/rte_port_ras.h | 83 + > lib/librte_port/rte_port_ring.c | 237 +++ > lib/librte_port/rte_port_ring.h | 82 + > lib/librte_port/rte_port_sched.c | 239 +++ > lib/librte_port/rte_port_sched.h | 82 + > lib/librte_port/rte_port_source_sink.c | 158 ++ > lib/librte_port/rte_port_source_sink.h | 70 + > lib/librte_table/Makefile | 85 + > lib/librte_table/rte_lru.h | 213 +++ > lib/librte_table/rte_table.h | 202 ++ > lib/librte_table/rte_table_acl.c | 490 +++++ > lib/librte_table/rte_table_acl.h | 95 + > lib/librte_table/rte_table_array.c | 204 ++ > lib/librte_table/rte_table_array.h | 76 + > lib/librte_table/rte_table_hash.h | 350 ++++ > lib/librte_table/rte_table_hash_ext.c | 1122 +++++++++++ > lib/librte_table/rte_table_hash_key16.c | 1100 +++++++++++ > lib/librte_table/rte_table_hash_key32.c | 1120 +++++++++++ > lib/librte_table/rte_table_hash_key8.c | 1398 ++++++++++++++ > lib/librte_table/rte_table_hash_lru.c | 1065 +++++++++++ > lib/librte_table/rte_table_lpm.c | 347 ++++ > lib/librte_table/rte_table_lpm.h | 115 ++ > lib/librte_table/rte_table_lpm_ipv6.c | 361 ++++ > lib/librte_table/rte_table_lpm_ipv6.h | 119 ++ > lib/librte_table/rte_table_stub.c | 65 + > lib/librte_table/rte_table_stub.h | 62 + > mk/rte.app.mk | 16 + > 98 files changed, 26951 insertions(+), 1 deletions(-) > create mode 100644 app/test-pipeline/Makefile > create mode 100644 app/test-pipeline/config.c > create mode 100644 app/test-pipeline/init.c > create mode 100644 app/test-pipeline/main.c > create mode 100644 app/test-pipeline/main.h > create mode 100644 app/test-pipeline/pipeline_acl.c > create mode 100644 app/test-pipeline/pipeline_hash.c > create mode 100644 app/test-pipeline/pipeline_lpm.c > create mode 100644 app/test-pipeline/pipeline_lpm_ipv6.c > create mode 100644 app/test-pipeline/pipeline_stub.c > create mode 100644 app/test-pipeline/runtime.c > create mode 100644 app/test/test_table.c > create mode 100644 app/test/test_table.h > create mode 100644 app/test/test_table_acl.c > create mode 100644 app/test/test_table_acl.h > create mode 100644 app/test/test_table_combined.c > create mode 100644 app/test/test_table_combined.h > create mode 100644 app/test/test_table_pipeline.c > create mode 100644 app/test/test_table_pipeline.h > create mode 100644 app/test/test_table_ports.c > create mode 100644 app/test/test_table_ports.h > create mode 100644 app/test/test_table_tables.c > create mode 100644 app/test/test_table_tables.h > create mode 100644 examples/ip_pipeline/Makefile > create mode 100644 examples/ip_pipeline/cmdline.c > create mode 100644 examples/ip_pipeline/config.c > create mode 100644 examples/ip_pipeline/init.c > create mode 100644 examples/ip_pipeline/ip_pipeline.cfg > create mode 100644 examples/ip_pipeline/ip_pipeline.sh > create mode 100644 examples/ip_pipeline/main.c > create mode 100644 examples/ip_pipeline/main.h > create mode 100644 examples/ip_pipeline/pipeline_firewall.c > create mode 100644 examples/ip_pipeline/pipeline_flow_classification.c > create mode 100644 examples/ip_pipeline/pipeline_ipv4_frag.c > create mode 100644 examples/ip_pipeline/pipeline_ipv4_ras.c > create mode 100644 examples/ip_pipeline/pipeline_passthrough.c > create mode 100644 examples/ip_pipeline/pipeline_routing.c > create mode 100644 examples/ip_pipeline/pipeline_rx.c > create mode 100644 examples/ip_pipeline/pipeline_tx.c > create mode 100644 lib/librte_cfgfile/Makefile > create mode 100644 lib/librte_cfgfile/rte_cfgfile.c > create mode 100644 lib/librte_cfgfile/rte_cfgfile.h > create mode 100644 lib/librte_pipeline/Makefile > create mode 100644 lib/librte_pipeline/rte_pipeline.c > create mode 100644 lib/librte_pipeline/rte_pipeline.h > create mode 100644 lib/librte_port/Makefile > create mode 100644 lib/librte_port/ipv4_frag_tbl.h > create mode 100644 lib/librte_port/ipv4_rsmbl.h > create mode 100644 lib/librte_port/rte_ipv4_frag.h > create mode 100644 lib/librte_port/rte_port.h > create mode 100644 lib/librte_port/rte_port_ethdev.c > create mode 100644 lib/librte_port/rte_port_ethdev.h > create mode 100644 lib/librte_port/rte_port_frag.c > create mode 100644 lib/librte_port/rte_port_frag.h > create mode 100644 lib/librte_port/rte_port_ras.c > create mode 100644 lib/librte_port/rte_port_ras.h > create mode 100644 lib/librte_port/rte_port_ring.c > create mode 100644 lib/librte_port/rte_port_ring.h > create mode 100644 lib/librte_port/rte_port_sched.c > create mode 100644 lib/librte_port/rte_port_sched.h > create mode 100644 lib/librte_port/rte_port_source_sink.c > create mode 100644 lib/librte_port/rte_port_source_sink.h > create mode 100644 lib/librte_table/Makefile > create mode 100644 lib/librte_table/rte_lru.h > create mode 100644 lib/librte_table/rte_table.h > create mode 100644 lib/librte_table/rte_table_acl.c > create mode 100644 lib/librte_table/rte_table_acl.h > create mode 100644 lib/librte_table/rte_table_array.c > create mode 100644 lib/librte_table/rte_table_array.h > create mode 100644 lib/librte_table/rte_table_hash.h > create mode 100644 lib/librte_table/rte_table_hash_ext.c > create mode 100644 lib/librte_table/rte_table_hash_key16.c > create mode 100644 lib/librte_table/rte_table_hash_key32.c > create mode 100644 lib/librte_table/rte_table_hash_key8.c > create mode 100644 lib/librte_table/rte_table_hash_lru.c > create mode 100644 lib/librte_table/rte_table_lpm.c > create mode 100644 lib/librte_table/rte_table_lpm.h > create mode 100644 lib/librte_table/rte_table_lpm_ipv6.c > create mode 100644 lib/librte_table/rte_table_lpm_ipv6.h > create mode 100644 lib/librte_table/rte_table_stub.c > create mode 100644 lib/librte_table/rte_table_stub.h >=20 > -- > 1.7.7.6