All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shahaf Shuler <shahafs@mellanox.com>
To: dev@dpdk.org
Subject: [PATCH 13/39] examples/ip_pipeline: convert to new ethdev offloads API
Date: Thu, 23 Nov 2017 14:19:15 +0200	[thread overview]
Message-ID: <20171123121941.144335-4-shahafs@mellanox.com> (raw)
In-Reply-To: <20171123121941.144335-1-shahafs@mellanox.com>

Ethdev offloads API has changed since:

commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API")
commit cba7f53b717d ("ethdev: introduce Tx queue offloads API")

This commit support the new API.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
---
 examples/ip_pipeline/config_parse.c | 13 +++----------
 examples/ip_pipeline/init.c         | 30 ++++++++++++++++++++++++++----
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/examples/ip_pipeline/config_parse.c b/examples/ip_pipeline/config_parse.c
index 3211c6ab7..835541229 100644
--- a/examples/ip_pipeline/config_parse.c
+++ b/examples/ip_pipeline/config_parse.c
@@ -97,14 +97,8 @@ static const struct app_link_params link_params_default = {
 		.rxmode = {
 			.mq_mode = ETH_MQ_RX_NONE,
 
-			.header_split   = 0, /* Header split */
-			.hw_ip_checksum = 0, /* IP checksum offload */
-			.hw_vlan_filter = 0, /* VLAN filtering */
-			.hw_vlan_strip  = 0, /* VLAN strip */
-			.hw_vlan_extend = 0, /* Extended VLAN */
-			.jumbo_frame    = 0, /* Jumbo frame support */
-			.hw_strip_crc   = 1, /* CRC strip by HW */
-			.enable_scatter = 0, /* Scattered packets RX handler */
+			.ignore_offload_bitfield = 1,
+			.offloads = DEV_RX_OFFLOAD_CRC_STRIP,
 
 			.max_rx_pkt_len = 9000, /* Jumbo frame max packet len */
 			.split_hdr_size = 0, /* Header split buffer size */
@@ -158,8 +152,7 @@ static const struct app_pktq_hwq_out_params default_hwq_out_params = {
 		},
 		.tx_rs_thresh = 0,
 		.tx_free_thresh = 0,
-		.txq_flags = ETH_TXQ_FLAGS_NOMULTSEGS |
-			ETH_TXQ_FLAGS_NOOFFLOADS,
+		.txq_flags = ETH_TXQ_FLAGS_IGNORE,
 		.tx_deferred_start = 0,
 	}
 };
diff --git a/examples/ip_pipeline/init.c b/examples/ip_pipeline/init.c
index e56e40482..79a2fbb63 100644
--- a/examples/ip_pipeline/init.c
+++ b/examples/ip_pipeline/init.c
@@ -876,10 +876,10 @@ app_init_link_frag_ras(struct app_params *app)
 	uint32_t i;
 
 	if (is_any_swq_frag_or_ras(app)) {
-		for (i = 0; i < app->n_pktq_hwq_out; i++) {
-			struct app_pktq_hwq_out_params *p_txq = &app->hwq_out_params[i];
-
-			p_txq->conf.txq_flags &= ~ETH_TXQ_FLAGS_NOMULTSEGS;
+		for (i = 0; i < app->n_links; i++) {
+			struct app_link_params *p_link = &app->link_params[i];
+				p_link->conf.txmode.offloads |=
+						DEV_TX_OFFLOAD_MULTI_SEGS;
 		}
 	}
 }
@@ -962,6 +962,7 @@ app_init_link(struct app_params *app)
 
 	for (i = 0; i < app->n_links; i++) {
 		struct app_link_params *p_link = &app->link_params[i];
+		struct rte_eth_dev_info dev_info;
 		uint32_t link_id, n_hwq_in, n_hwq_out, j;
 		int status;
 
@@ -978,6 +979,25 @@ app_init_link(struct app_params *app)
 			n_hwq_out);
 
 		/* LINK */
+		rte_eth_dev_info_get(p_link->pmd_id, &dev_info);
+		if ((dev_info.rx_offload_capa & p_link->conf.rxmode.offloads) !=
+		    p_link->conf.rxmode.offloads) {
+			printf("Some Rx offloads are not supported "
+			       "by port %d: requested 0x%lx supported 0x%lx\n",
+			       p_link->pmd_id, p_link->conf.rxmode.offloads,
+			       dev_info.rx_offload_capa);
+			p_link->conf.rxmode.offloads &=
+						dev_info.rx_offload_capa;
+		}
+		if ((dev_info.tx_offload_capa & p_link->conf.txmode.offloads) !=
+		    p_link->conf.txmode.offloads) {
+			printf("Some Tx offloads are not supported "
+			       "by port %d: requested 0x%lx supported 0x%lx\n",
+			       p_link->pmd_id, p_link->conf.txmode.offloads,
+			       dev_info.tx_offload_capa);
+			p_link->conf.txmode.offloads &=
+						dev_info.tx_offload_capa;
+		}
 		status = rte_eth_dev_configure(
 			p_link->pmd_id,
 			n_hwq_in,
@@ -1019,6 +1039,7 @@ app_init_link(struct app_params *app)
 					p_rxq->name,
 					status);
 
+			p_rxq->conf.offloads = p_link->conf.rxmode.offloads;
 			status = rte_eth_rx_queue_setup(
 				p_link->pmd_id,
 				rxq_queue_id,
@@ -1060,6 +1081,7 @@ app_init_link(struct app_params *app)
 					p_txq->name,
 					status);
 
+			p_txq->conf.offloads = p_link->conf.txmode.offloads;
 			status = rte_eth_tx_queue_setup(
 				p_link->pmd_id,
 				txq_queue_id,
-- 
2.12.0

  parent reply	other threads:[~2017-11-23 12:20 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-23 12:19 [PATCH 10/39] examples/exception_path: convert to new ethdev offloads API Shahaf Shuler
2017-11-23 12:19 ` [PATCH 11/39] examples/kni: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 12/39] examples/ip_fragmentation: convert to new " Shahaf Shuler
2017-12-11 14:56   ` Ananyev, Konstantin
2017-11-23 12:19 ` Shahaf Shuler [this message]
2017-11-23 12:19 ` [PATCH 14/39] examples/ip_reassembly: convert to new ethdev " Shahaf Shuler
2017-12-11 15:03   ` Ananyev, Konstantin
2017-12-12  6:30     ` Shahaf Shuler
2017-12-12  8:49       ` Ananyev, Konstantin
2017-11-23 12:19 ` [PATCH 15/39] examples/ipsec-secgw: " Shahaf Shuler
2017-12-11 11:47   ` Radu Nicolau
2017-12-11 12:33     ` Shahaf Shuler
2017-12-11 12:51       ` Radu Nicolau
2017-11-23 12:19 ` [PATCH 16/39] examples/ipv4_multicast: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 17/39] examples/link_status_interrupt: convert to new " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 18/39] examples/load_balancer: convert to new ethdev " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 19/39] examples/multi_process: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 20/39] examples/netmap_compat: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 21/39] examples/performance-thread: convert to new " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 22/39] examples/qos_meter: convert to new ethdev " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 23/39] examples/qos_sched: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 24/39] examples/quota_watermark: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 25/39] examples/tep_termination: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 26/39] examples/vhost: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 27/39] examples/vmdq: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 28/39] examples/vmdq_dcb: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 29/39] examples/vm_power_manager: convert to new " Shahaf Shuler
2017-12-11 12:06   ` Hunt, David
2017-11-23 12:19 ` [PATCH 30/39] examples/distributor: convert to new ethdev " Shahaf Shuler
2017-12-11 16:20   ` Bruce Richardson
2017-11-23 12:19 ` [PATCH 31/39] examples/ethtool: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 32/39] examples/eventdev_pipeline: convert to new " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 33/39] examples/flow_classify: convert to new ethdev " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 34/39] examples/flow_filtering: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 35/39] examples/packet_ordering: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 36/39] examples/ptpclient: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 37/39] examples/rxtx_callbacks: " Shahaf Shuler
2017-12-11 16:22   ` Bruce Richardson
2017-11-23 12:19 ` [PATCH 38/39] examples/server_node_efd: " Shahaf Shuler
2017-11-23 12:19 ` [PATCH 39/39] examples/skeleton: " Shahaf Shuler
2017-12-11 16:23   ` Bruce Richardson

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=20171123121941.144335-4-shahafs@mellanox.com \
    --to=shahafs@mellanox.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.