DPDK patches and discussions
 help / color / mirror / Atom feed
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

  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).