All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev 1/4] examples: enable HW CRC strip by default
@ 2017-03-16 10:20 Jeff Guo
  2017-03-16 10:20 ` [dpdk-dev 2/4] app: " Jeff Guo
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jeff Guo @ 2017-03-16 10:20 UTC (permalink / raw)
  To: helin.zhang, jingjing.wu; +Cc: dev, jia.guo, stable

Since VF has no ability to disable/enable HW CRC strip for non-DPDK PF
drivers, and for most case of kernel driver default enable HW CRC strip,
if disable HW CRC strip in example app's rxmode, VF driver will return
fail and result the VF launch failure. So this patch default to enable
HW CRC strip to let VF launch successful.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Cc: stable@dpdk.org
---
 examples/bond/main.c                            | 2 +-
 examples/dpdk_qat/main.c                        | 2 +-
 examples/exception_path/main.c                  | 2 +-
 examples/ip_fragmentation/main.c                | 2 +-
 examples/ip_pipeline/config_parse.c             | 2 +-
 examples/ip_reassembly/main.c                   | 2 +-
 examples/ipsec-secgw/ipsec-secgw.c              | 2 +-
 examples/ipv4_multicast/main.c                  | 2 +-
 examples/kni/main.c                             | 2 +-
 examples/l2fwd-crypto/main.c                    | 2 +-
 examples/l2fwd-jobstats/main.c                  | 2 +-
 examples/l2fwd-keepalive/main.c                 | 2 +-
 examples/l2fwd/main.c                           | 2 +-
 examples/l3fwd-acl/main.c                       | 2 +-
 examples/l3fwd-power/main.c                     | 2 +-
 examples/l3fwd-vf/main.c                        | 2 +-
 examples/l3fwd/main.c                           | 2 +-
 examples/link_status_interrupt/main.c           | 2 +-
 examples/load_balancer/init.c                   | 2 +-
 examples/multi_process/l2fwd_fork/main.c        | 2 +-
 examples/multi_process/symmetric_mp/main.c      | 2 +-
 examples/netmap_compat/bridge/bridge.c          | 2 +-
 examples/performance-thread/l3fwd-thread/main.c | 2 +-
 examples/qos_meter/main.c                       | 2 +-
 examples/qos_sched/init.c                       | 2 +-
 examples/quota_watermark/qw/init.c              | 2 +-
 examples/tep_termination/vxlan_setup.c          | 2 +-
 examples/vhost/main.c                           | 2 +-
 examples/vhost_xen/main.c                       | 2 +-
 29 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/examples/bond/main.c b/examples/bond/main.c
index 6402c6b..9a4ec80 100644
--- a/examples/bond/main.c
+++ b/examples/bond/main.c
@@ -160,7 +160,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/dpdk_qat/main.c b/examples/dpdk_qat/main.c
index a96119c..05c7aa8 100644
--- a/examples/dpdk_qat/main.c
+++ b/examples/dpdk_qat/main.c
@@ -142,7 +142,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/exception_path/main.c b/examples/exception_path/main.c
index 73d50b6..89bf1cc 100644
--- a/examples/exception_path/main.c
+++ b/examples/exception_path/main.c
@@ -114,7 +114,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0,    /* IP checksum offload disabled */
 		.hw_vlan_filter = 0,    /* VLAN filtering disabled */
 		.jumbo_frame = 0,       /* Jumbo Frame Support disabled */
-		.hw_strip_crc = 0,      /* CRC stripped by hardware */
+		.hw_strip_crc = 1,      /* CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c
index 1b005b5..69e00e0 100644
--- a/examples/ip_fragmentation/main.c
+++ b/examples/ip_fragmentation/main.c
@@ -176,7 +176,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 1, /**< Jumbo Frame Support enabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/ip_pipeline/config_parse.c b/examples/ip_pipeline/config_parse.c
index 3ae7d48..0b76134 100644
--- a/examples/ip_pipeline/config_parse.c
+++ b/examples/ip_pipeline/config_parse.c
@@ -103,7 +103,7 @@ static const struct app_link_params link_params_default = {
 			.hw_vlan_strip  = 0, /* VLAN strip */
 			.hw_vlan_extend = 0, /* Extended VLAN */
 			.jumbo_frame    = 0, /* Jumbo frame support */
-			.hw_strip_crc   = 0, /* CRC strip by HW */
+			.hw_strip_crc   = 1, /* CRC strip by HW */
 			.enable_scatter = 0, /* Scattered packets RX handler */
 
 			.max_rx_pkt_len = 9000, /* Jumbo frame max packet len */
diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
index b641576..b1da7a1 100644
--- a/examples/ip_reassembly/main.c
+++ b/examples/ip_reassembly/main.c
@@ -200,7 +200,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 1, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 			.rss_conf = {
diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c
index d3c229a..8cbf6ac 100644
--- a/examples/ipsec-secgw/ipsec-secgw.c
+++ b/examples/ipsec-secgw/ipsec-secgw.c
@@ -208,7 +208,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index b681f8e..af59d2d 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -145,7 +145,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 1, /**< Jumbo Frame Support enabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/kni/main.c b/examples/kni/main.c
index 57313d1..0be57d8 100644
--- a/examples/kni/main.c
+++ b/examples/kni/main.c
@@ -130,7 +130,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0,    /* IP checksum offload disabled */
 		.hw_vlan_filter = 0,    /* VLAN filtering disabled */
 		.jumbo_frame = 0,       /* Jumbo Frame Support disabled */
-		.hw_strip_crc = 0,      /* CRC stripped by hardware */
+		.hw_strip_crc = 1,      /* CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c
index bd21dba..f2f628c 100644
--- a/examples/l2fwd-crypto/main.c
+++ b/examples/l2fwd-crypto/main.c
@@ -215,7 +215,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c
index eae7a13..e6e6c22 100644
--- a/examples/l2fwd-jobstats/main.c
+++ b/examples/l2fwd-jobstats/main.c
@@ -126,7 +126,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c
index 068f4e5..4623d2a 100644
--- a/examples/l2fwd-keepalive/main.c
+++ b/examples/l2fwd-keepalive/main.c
@@ -116,7 +116,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c
index ffcf109..f966727 100644
--- a/examples/l2fwd/main.c
+++ b/examples/l2fwd/main.c
@@ -120,7 +120,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c
index 0e3daad..ea0b5b1 100644
--- a/examples/l3fwd-acl/main.c
+++ b/examples/l3fwd-acl/main.c
@@ -163,7 +163,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index 978631c..ec40a17 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -223,7 +223,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c
index dc3d547..797f722 100644
--- a/examples/l3fwd-vf/main.c
+++ b/examples/l3fwd-vf/main.c
@@ -197,7 +197,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index 3ce1b65..fd6605b 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -156,7 +156,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c
index 97379fa..25da28e 100644
--- a/examples/link_status_interrupt/main.c
+++ b/examples/link_status_interrupt/main.c
@@ -116,7 +116,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c
index e07850b..abd05a3 100644
--- a/examples/load_balancer/init.c
+++ b/examples/load_balancer/init.c
@@ -81,7 +81,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/multi_process/l2fwd_fork/main.c b/examples/multi_process/l2fwd_fork/main.c
index 67a9f15..311a427 100644
--- a/examples/multi_process/l2fwd_fork/main.c
+++ b/examples/multi_process/l2fwd_fork/main.c
@@ -162,7 +162,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c
index 75a5272..0990d96 100644
--- a/examples/multi_process/symmetric_mp/main.c
+++ b/examples/multi_process/symmetric_mp/main.c
@@ -213,7 +213,7 @@ smp_port_init(uint8_t port, struct rte_mempool *mbuf_pool, uint16_t num_queues)
 				.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 				.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 				.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-				.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+				.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 			},
 			.rx_adv_conf = {
 				.rss_conf = {
diff --git a/examples/netmap_compat/bridge/bridge.c b/examples/netmap_compat/bridge/bridge.c
index 53f5fdb..2f2b6ba 100644
--- a/examples/netmap_compat/bridge/bridge.c
+++ b/examples/netmap_compat/bridge/bridge.c
@@ -59,7 +59,7 @@ struct rte_eth_conf eth_conf = {
 		.hw_ip_checksum = 0,
 		.hw_vlan_filter = 0,
 		.jumbo_frame    = 0,
-		.hw_strip_crc   = 0,
+		.hw_strip_crc   = 1,
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c
index bf92582..c9d68c9 100644
--- a/examples/performance-thread/l3fwd-thread/main.c
+++ b/examples/performance-thread/l3fwd-thread/main.c
@@ -341,7 +341,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c
index abe5eb8..d8a2107 100644
--- a/examples/qos_meter/main.c
+++ b/examples/qos_meter/main.c
@@ -89,7 +89,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1,
 		.hw_vlan_filter = 0,
 		.jumbo_frame    = 0,
-		.hw_strip_crc   = 0,
+		.hw_strip_crc   = 1,
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c
index 70e12bb..fe0221c 100644
--- a/examples/qos_sched/init.c
+++ b/examples/qos_sched/init.c
@@ -92,7 +92,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_DCB_NONE,
diff --git a/examples/quota_watermark/qw/init.c b/examples/quota_watermark/qw/init.c
index 95a9f94..a901f08 100644
--- a/examples/quota_watermark/qw/init.c
+++ b/examples/quota_watermark/qw/init.c
@@ -57,7 +57,7 @@ static const struct rte_eth_conf port_conf = {
 			.hw_ip_checksum = 0, /**< IP csum offload disabled */
 			.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 			.jumbo_frame    = 0, /**< Jumbo Frame disabled */
-			.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+			.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 		},
 		.txmode = {
 			.mq_mode = ETH_DCB_NONE,
diff --git a/examples/tep_termination/vxlan_setup.c b/examples/tep_termination/vxlan_setup.c
index 8f1f15b..7de3302 100644
--- a/examples/tep_termination/vxlan_setup.c
+++ b/examples/tep_termination/vxlan_setup.c
@@ -102,7 +102,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload disabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 4789947..c71d4a2 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -153,7 +153,7 @@ static struct rte_eth_conf vmdq_conf_default = {
 		 */
 		.hw_vlan_strip  = 1, /**< VLAN strip enabled. */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 
 	.txmode = {
diff --git a/examples/vhost_xen/main.c b/examples/vhost_xen/main.c
index af05b00..d9ef140 100644
--- a/examples/vhost_xen/main.c
+++ b/examples/vhost_xen/main.c
@@ -149,7 +149,7 @@ static const struct rte_eth_conf vmdq_conf_default = {
 		 */
 		.hw_vlan_strip  = 1, /**< VLAN strip enabled. */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 
 	.txmode = {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [dpdk-dev 2/4] app: enable HW CRC strip by default
  2017-03-16 10:20 [dpdk-dev 1/4] examples: enable HW CRC strip by default Jeff Guo
@ 2017-03-16 10:20 ` Jeff Guo
  2017-03-16 10:20 ` [dpdk-dev 3/4] test: " Jeff Guo
  2017-03-16 10:20 ` [dpdk-dev 4/4] net/i40evf: add notify to correct CRC strip config Jeff Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Jeff Guo @ 2017-03-16 10:20 UTC (permalink / raw)
  To: helin.zhang, jingjing.wu; +Cc: dev, jia.guo, stable

Since VF has no ability to disable/enable HW CRC strip for non-DPDK PF
drivers, and for most case of kernel driver default enable HW CRC strip,
if disable HW CRC strip in app's rxmode, VF driver will return fail and
result the VF launch failure. So this patch default to enable HW CRC strip
to let VF launch successful.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Cc: stable@dpdk.org
---
 app/test-pmd/testpmd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index e04e215..f01522c 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -284,7 +284,7 @@ struct rte_eth_rxmode rx_mode = {
 	.hw_vlan_strip  = 1, /**< VLAN strip enabled. */
 	.hw_vlan_extend = 0, /**< Extended VLAN disabled. */
 	.jumbo_frame    = 0, /**< Jumbo Frame Support disabled. */
-	.hw_strip_crc   = 0, /**< CRC stripping by hardware disabled. */
+	.hw_strip_crc   = 1, /**< CRC stripping by hardware disabled. */
 };
 
 struct rte_fdir_conf fdir_conf = {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [dpdk-dev 3/4] test: enable HW CRC strip by default
  2017-03-16 10:20 [dpdk-dev 1/4] examples: enable HW CRC strip by default Jeff Guo
  2017-03-16 10:20 ` [dpdk-dev 2/4] app: " Jeff Guo
@ 2017-03-16 10:20 ` Jeff Guo
  2017-03-16 10:20 ` [dpdk-dev 4/4] net/i40evf: add notify to correct CRC strip config Jeff Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Jeff Guo @ 2017-03-16 10:20 UTC (permalink / raw)
  To: helin.zhang, jingjing.wu; +Cc: dev, jia.guo, stable

Since VF has no ability to disable/enable HW CRC strip for non-DPDK PF
drivers, and for most case of kernel driver default enable HW CRC strip,
if disable HW CRC strip in test app's rxmode, VF driver will return fail and
result the VF launch failure. So this patch default to enable HW CRC strip
to let VF launch successful.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Cc: stable@dpdk.org
---
 test/test-pipeline/init.c             | 2 +-
 test/test/test_kni.c                  | 2 +-
 test/test/test_link_bonding.c         | 4 ++--
 test/test/test_link_bonding_mode4.c   | 2 +-
 test/test/test_link_bonding_rssconf.c | 4 ++--
 test/test/test_pmd_perf.c             | 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/test/test-pipeline/init.c b/test/test-pipeline/init.c
index aef082f..00dbc27 100644
--- a/test/test-pipeline/init.c
+++ b/test/test-pipeline/init.c
@@ -105,7 +105,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 1, /* IP checksum offload enabled */
 		.hw_vlan_filter = 0, /* VLAN filtering disabled */
 		.jumbo_frame    = 0, /* Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /* CRC stripped by hardware */
+		.hw_strip_crc   = 1, /* CRC stripped by hardware */
 	},
 	.rx_adv_conf = {
 		.rss_conf = {
diff --git a/test/test/test_kni.c b/test/test/test_kni.c
index 309741c..db17fdf 100644
--- a/test/test/test_kni.c
+++ b/test/test/test_kni.c
@@ -92,7 +92,7 @@ static const struct rte_eth_conf port_conf = {
 		.hw_ip_checksum = 0,
 		.hw_vlan_filter = 0,
 		.jumbo_frame = 0,
-		.hw_strip_crc = 0,
+		.hw_strip_crc = 1,
 	},
 	.txmode = {
 		.mq_mode = ETH_DCB_NONE,
diff --git a/test/test/test_link_bonding.c b/test/test/test_link_bonding.c
index 3229660..3a1194c 100644
--- a/test/test/test_link_bonding.c
+++ b/test/test/test_link_bonding.c
@@ -172,7 +172,7 @@ struct rte_eth_rxmode rx_mode = {
 	.hw_vlan_strip  = 1, /**< VLAN strip enabled. */
 	.hw_vlan_extend = 0, /**< Extended VLAN disabled. */
 	.jumbo_frame    = 0, /**< Jumbo Frame Support disabled. */
-	.hw_strip_crc   = 0, /**< CRC stripping by hardware disabled. */
+	.hw_strip_crc   = 1, /**< CRC stripping by hardware disabled. */
 };
 
 struct rte_fdir_conf fdir_conf = {
@@ -191,7 +191,7 @@ static struct rte_eth_conf default_pmd_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/test/test/test_link_bonding_mode4.c b/test/test/test_link_bonding_mode4.c
index 53caa3e..dc33973 100644
--- a/test/test/test_link_bonding_mode4.c
+++ b/test/test/test_link_bonding_mode4.c
@@ -143,7 +143,7 @@ static struct rte_eth_conf default_pmd_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/test/test/test_link_bonding_rssconf.c b/test/test/test_link_bonding_rssconf.c
index 9034f62..ba7163e 100644
--- a/test/test/test_link_bonding_rssconf.c
+++ b/test/test/test_link_bonding_rssconf.c
@@ -116,7 +116,7 @@ static struct rte_eth_conf default_pmd_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
@@ -133,7 +133,7 @@ static struct rte_eth_conf rss_pmd_conf = {
 		.hw_ip_checksum = 0, /**< IP checksum offload enabled */
 		.hw_vlan_filter = 0, /**< VLAN filtering disabled */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 	},
 	.txmode = {
 		.mq_mode = ETH_MQ_TX_NONE,
diff --git a/test/test/test_pmd_perf.c b/test/test/test_pmd_perf.c
index e055aa0..1ffd65a 100644
--- a/test/test/test_pmd_perf.c
+++ b/test/test/test_pmd_perf.c
@@ -100,7 +100,7 @@ static struct rte_eth_conf port_conf = {
 		.hw_vlan_strip  = 0, /**< VLAN strip enabled. */
 		.hw_vlan_extend = 0, /**< Extended VLAN disabled. */
 		.jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-		.hw_strip_crc   = 0, /**< CRC stripped by hardware */
+		.hw_strip_crc   = 1, /**< CRC stripped by hardware */
 		.enable_scatter = 0, /**< scatter rx disabled */
 	},
 	.txmode = {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [dpdk-dev 4/4] net/i40evf: add notify to correct CRC strip config
  2017-03-16 10:20 [dpdk-dev 1/4] examples: enable HW CRC strip by default Jeff Guo
  2017-03-16 10:20 ` [dpdk-dev 2/4] app: " Jeff Guo
  2017-03-16 10:20 ` [dpdk-dev 3/4] test: " Jeff Guo
@ 2017-03-16 10:20 ` Jeff Guo
  2 siblings, 0 replies; 4+ messages in thread
From: Jeff Guo @ 2017-03-16 10:20 UTC (permalink / raw)
  To: helin.zhang, jingjing.wu; +Cc: dev, jia.guo, stable

Since VF has no ability to disable/enable HW CRC strip for non-DPDK PF
drivers in i40e, if HW CRC strip config in example app's rxmode is not
match with the kernel PF default config, VF driver will return fail.
The patch just add notify to let user know how to correctly re-config
it to let the VF successful to work.

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Cc: stable@dpdk.org
---
 config/common_base                |  1 +
 drivers/net/i40e/i40e_ethdev_vf.c | 30 +++++++++++++++++++++---------
 2 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/config/common_base b/config/common_base
index aeee13e..2b9fcfb 100644
--- a/config/common_base
+++ b/config/common_base
@@ -188,6 +188,7 @@ CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF=4
 CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=4
 # interval up to 8160 us, aligned to 2 (or default value)
 CONFIG_RTE_LIBRTE_I40E_ITR_INTERVAL=-1
+CONFIG_RTE_LIBRTE_I40E_PF_DISABLE_STRIP_CRC=n
 
 #
 # Compile burst-oriented FM10K PMD
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index 55fd344..f72bda3 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -1567,7 +1567,7 @@ i40evf_dev_configure(struct rte_eth_dev *dev)
 	struct i40e_adapter *ad =
 		I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
 	struct rte_eth_conf *conf = &dev->data->dev_conf;
-	struct i40e_vf *vf;
+	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 
 	/* Initialize to TRUE. If any of Rx queues doesn't meet the bulk
 	 * allocation or vector Rx preconditions we will reset it.
@@ -1577,17 +1577,29 @@ i40evf_dev_configure(struct rte_eth_dev *dev)
 	ad->tx_simple_allowed = true;
 	ad->tx_vec_allowed = true;
 
-	/* For non-DPDK PF drivers, VF has no ability to disable HW
-	 * CRC strip, and is implicitly enabled by the PF.
+	/* For non-DPDK PF drivers, VF has no ability to disable/enable HW
+	 * CRC strip, and is implicitly enabled/disabled by the PF.
 	 */
-	if (!conf->rxmode.hw_strip_crc) {
-		vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
-		if ((vf->version_major == I40E_VIRTCHNL_VERSION_MAJOR) &&
-		    (vf->version_minor <= I40E_VIRTCHNL_VERSION_MINOR)) {
-			/* Peer is running non-DPDK PF driver. */
-			PMD_INIT_LOG(ERR, "VF can't disable HW CRC Strip");
+	if ((vf->version_major == I40E_VIRTCHNL_VERSION_MAJOR) &&
+		(vf->version_minor <= I40E_VIRTCHNL_VERSION_MINOR)) {
+		/* Peer is running non-DPDK PF driver. */
+#ifndef RTE_LIBRTE_I40E_PF_DISABLE_STRIP_CRC
+		if (!conf->rxmode.hw_strip_crc) {
+			PMD_INIT_LOG(ERR, "VF can't disable HW CRC Strip"
+				" for non-DPDK PF drivers\n");
+			PMD_INIT_LOG(ERR, "hw_strip_crc should be set 1"
+				" by default for non-DPDK PF drivers!");
+			return -EINVAL;
+		}
+#else
+		if (conf->rxmode.hw_strip_crc) {
+			PMD_INIT_LOG(ERR, "VF can't enable HW CRC Strip"
+				" for non-DPDK PF drivers\n");
+			PMD_INIT_LOG(ERR, "hw_strip_crc should be set 0"
+				" by default for non-DPDK PF drivers!");
 			return -EINVAL;
 		}
+#endif
 	}
 
 	return i40evf_init_vlan(dev);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-03-16 10:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-16 10:20 [dpdk-dev 1/4] examples: enable HW CRC strip by default Jeff Guo
2017-03-16 10:20 ` [dpdk-dev 2/4] app: " Jeff Guo
2017-03-16 10:20 ` [dpdk-dev 3/4] test: " Jeff Guo
2017-03-16 10:20 ` [dpdk-dev 4/4] net/i40evf: add notify to correct CRC strip config Jeff Guo

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.