From: "De Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>
To: "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [v2 00/23] Packet Framework
Date: Thu, 5 Jun 2014 11:01:11 +0000 [thread overview]
Message-ID: <E115CCD9D858EF4F90C690B0DCB4D897082C8B86@IRSMSX103.ger.corp.intel.com> (raw)
In-Reply-To: <1401905319-8882-1-git-send-email-cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
> -----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
>
> (Version 2 changes are exclusively style changes (checkpatch.pl) and patch
> consolidation, no functional change)
>
> 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.
>
> A pipeline is constructed by connecting its input ports to its output ports
> 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 case 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 the
> reserved actions define the next hop for the current packet (either another
> table, an output port or packet drop) and are handled transparently by the
> framework.
>
> 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.
>
> Two sample applications are provided for Packet Framework: app/test-
> pipeline and examples/ip_pipeline. Please check the Intel Sample Apps Guide
> for a detailed description of how these sample apps.
>
> 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
>
> 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
>
> --
> 1.7.7.6
next prev parent reply other threads:[~2014-06-05 11:01 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-04 18:08 Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 01/23] librte_lpm: rule_is_present Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 02/23] mbuf: meta-data Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 03/23] Packet Framework librte_port: Port API Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 04/23] Packet Framework librte_port: ethdev ports Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 05/23] Packet Framework librte_port: ring ports Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 06/23] Packet Framework librte_port: IPv4 frag port Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 07/23] Packet Framework librte_port: IPv4 reassembly Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 08/23] Packet Framework librte_port: hierarchical scheduler port Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 09/23] Packet Framework librte_port: Source/Sink ports Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 10/23] Packet Framework librte_port: Build infrastructure Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 11/23] Packet Framework librte_table: Table API Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 12/23] Packet Framework librte_table: LPM IPv4 table Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 13/23] Packet Framework librte_table: LPM IPv6 table Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 14/23] Packet Framework librte_table: ACL table Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 15/23] Packet Framework librte_table: Hash tables Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 16/23] Packet Framework librte_table: array table Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 17/23] Packet Framework librte_table: Stub table Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 18/23] Packet Framework librte_table: Build infrastructure Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 19/23] Packet Framework librte_pipeline: Pipeline Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 20/23] librte_cfgfile: interpret config files Cristian Dumitrescu
2014-10-16 16:46 ` Thomas Monjalon
2014-10-17 18:16 ` Dumitrescu, Cristian
2014-10-17 18:50 ` Thomas Monjalon
2014-06-04 18:08 ` [dpdk-dev] [v2 21/23] Packet Framework performance application Cristian Dumitrescu
2014-06-04 18:08 ` [dpdk-dev] [v2 22/23] Packet Framework IPv4 pipeline sample app Cristian Dumitrescu
2014-06-09 9:11 ` Olivier MATZ
2014-06-09 10:49 ` Dumitrescu, Cristian
2014-06-09 12:13 ` Olivier MATZ
2014-06-09 13:25 ` Dumitrescu, Cristian
2014-06-09 15:51 ` Olivier MATZ
2014-06-04 18:08 ` [dpdk-dev] [v2 23/23] Packet Framework unit tests Cristian Dumitrescu
2014-06-05 11:01 ` De Lara Guarch, Pablo [this message]
2014-06-05 11:43 ` [dpdk-dev] [v2 00/23] Packet Framework Cao, Waterman
2014-06-05 14:40 ` Ivan Boule
2014-06-17 1:27 ` Thomas Monjalon
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=E115CCD9D858EF4F90C690B0DCB4D897082C8B86@IRSMSX103.ger.corp.intel.com \
--to=pablo.de.lara.guarch@intel.com \
--cc=cristian.dumitrescu@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).