patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Yongseok Koh <yskoh@mellanox.com>
To: Hyong Youb Kim <hyonkim@cisco.com>
Cc: John Daley <johndale@cisco.com>, dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/enic: fix flow director SCTP matching' has been queued to LTS release 17.11.7
Date: Mon, 22 Jul 2019 17:59:49 -0700	[thread overview]
Message-ID: <20190723010115.6446-22-yskoh@mellanox.com> (raw)
In-Reply-To: <20190723010115.6446-1-yskoh@mellanox.com>

Hi,

FYI, your patch has been queued to LTS release 17.11.7

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objection by 07/27/19. So please
shout if anyone has objection.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Yongseok

---
From c6b1b6f30009928ddd521cb626e160b59eba6e1c Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim@cisco.com>
Date: Sat, 2 Mar 2019 02:42:40 -0800
Subject: [PATCH] net/enic: fix flow director SCTP matching

[ upstream commit 4182ee7f0239563916b1f730d5a58f534769ee5e ]

The firmware filter API does not have flags indicating "match SCTP
packet". Instead, the driver needs to explicitly add an IP match and
set the protocol number (132 for SCTP) in the IP header.

The existing code (copy_fltr_v2) has two bugs.

1. It sets the protocol number (132) in the match value, but not the
mask. The mask remains 0, so the match becomes a wildcard match. The
NIC ends up matching all protocol numbers (i.e. thinks non-SCTP
packets are SCTP).

2. It modifies the input argument (rte_eth_fdir_input). The driver
tracks filters using rte_hash_{add,del}_key(input). So, addding
(RTE_ETH_FILTER_ADD) and deleting (RTE_ETH_FILTER_DELETE) must use the
same input argument for the same filter. But, overwriting the protocol
number while adding the filter breaks this assumption, and causes
delete operation to fail.

So, set the mask as well as protocol value. Do not modify the input
argument, and use const in function signatures to make the intention
clear. Also move a couple function declarations to enic_clsf.c from
enic.h as they are strictly local.

Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300 series")

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
---
 drivers/net/enic/enic.h      |  8 ++------
 drivers/net/enic/enic_clsf.c | 38 ++++++++++++++++++++++++------------
 2 files changed, 28 insertions(+), 18 deletions(-)

diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index 8bbff18c0a..d8c1dfefbc 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -91,8 +91,8 @@ struct enic_fdir {
 	u32 modes;
 	u32 types_mask;
 	void (*copy_fltr_fn)(struct filter_v2 *filt,
-			     struct rte_eth_fdir_input *input,
-			     struct rte_eth_fdir_masks *masks);
+			     const struct rte_eth_fdir_input *input,
+			     const struct rte_eth_fdir_masks *masks);
 };
 
 struct enic_soft_stats {
@@ -303,9 +303,5 @@ int enic_set_mtu(struct enic *enic, uint16_t new_mtu);
 int enic_link_update(struct enic *enic);
 void enic_fdir_info(struct enic *enic);
 void enic_fdir_info_get(struct enic *enic, struct rte_eth_fdir_info *stats);
-void copy_fltr_v1(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
-		  struct rte_eth_fdir_masks *masks);
-void copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
-		  struct rte_eth_fdir_masks *masks);
 extern const struct rte_flow_ops enic_flow_ops;
 #endif /* _ENIC_H_ */
diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c
index c76af0d10c..e507399099 100644
--- a/drivers/net/enic/enic_clsf.c
+++ b/drivers/net/enic/enic_clsf.c
@@ -65,6 +65,13 @@
 
 #define ENICPMD_CLSF_HASH_ENTRIES       ENICPMD_FDIR_MAX
 
+static void copy_fltr_v1(struct filter_v2 *fltr,
+		const struct rte_eth_fdir_input *input,
+		const struct rte_eth_fdir_masks *masks);
+static void copy_fltr_v2(struct filter_v2 *fltr,
+		const struct rte_eth_fdir_input *input,
+		const struct rte_eth_fdir_masks *masks);
+
 void enic_fdir_stats_get(struct enic *enic, struct rte_eth_fdir_stats *stats)
 {
 	*stats = enic->fdir.stats;
@@ -108,9 +115,9 @@ enic_set_layer(struct filter_generic_1 *gp, unsigned int flag,
 /* Copy Flow Director filter to a VIC ipv4 filter (for Cisco VICs
  * without advanced filter support.
  */
-void
-copy_fltr_v1(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
-	     __rte_unused struct rte_eth_fdir_masks *masks)
+static void
+copy_fltr_v1(struct filter_v2 *fltr, const struct rte_eth_fdir_input *input,
+	     __rte_unused const struct rte_eth_fdir_masks *masks)
 {
 	fltr->type = FILTER_IPV4_5TUPLE;
 	fltr->u.ipv4.src_addr = rte_be_to_cpu_32(
@@ -133,9 +140,9 @@ copy_fltr_v1(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
 /* Copy Flow Director filter to a VIC generic filter (requires advanced
  * filter support.
  */
-void
-copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
-	     struct rte_eth_fdir_masks *masks)
+static void
+copy_fltr_v2(struct filter_v2 *fltr, const struct rte_eth_fdir_input *input,
+	     const struct rte_eth_fdir_masks *masks)
 {
 	struct filter_generic_1 *gp = &fltr->u.generic_1;
 	int i;
@@ -193,9 +200,11 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
 			sctp_val.tag = input->flow.sctp4_flow.verify_tag;
 		}
 
-		/* v4 proto should be 132, override ip4_flow.proto */
-		input->flow.ip4_flow.proto = 132;
-
+		/*
+		 * Unlike UDP/TCP (FILTER_GENERIC_1_{UDP,TCP}), the firmware
+		 * has no "packet is SCTP" flag. Use flag=0 (generic L4) and
+		 * manually set proto_id=sctp below.
+		 */
 		enic_set_layer(gp, 0, FILTER_GENERIC_1_L4, &sctp_mask,
 			       &sctp_val, sizeof(struct sctp_hdr));
 	}
@@ -219,6 +228,10 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
 		if (input->flow.ip4_flow.proto) {
 			ip4_mask.next_proto_id = masks->ipv4_mask.proto;
 			ip4_val.next_proto_id = input->flow.ip4_flow.proto;
+		} else if (input->flow_type == RTE_ETH_FLOW_NONFRAG_IPV4_SCTP) {
+			/* Explicitly match the SCTP protocol number */
+			ip4_mask.next_proto_id = 0xff;
+			ip4_val.next_proto_id = IPPROTO_SCTP;
 		}
 		if (input->flow.ip4_flow.src_ip) {
 			ip4_mask.src_addr =  masks->ipv4_mask.src_ip;
@@ -281,9 +294,6 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
 			sctp_val.tag = input->flow.sctp6_flow.verify_tag;
 		}
 
-		/* v4 proto should be 132, override ipv6_flow.proto */
-		input->flow.ipv6_flow.proto = 132;
-
 		enic_set_layer(gp, 0, FILTER_GENERIC_1_L4, &sctp_mask,
 			       &sctp_val, sizeof(struct sctp_hdr));
 	}
@@ -299,6 +309,10 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
 		if (input->flow.ipv6_flow.proto) {
 			ipv6_mask.proto = masks->ipv6_mask.proto;
 			ipv6_val.proto = input->flow.ipv6_flow.proto;
+		} else if (input->flow_type == RTE_ETH_FLOW_NONFRAG_IPV6_SCTP) {
+			/* See comments for IPv4 SCTP above. */
+			ipv6_mask.proto = 0xff;
+			ipv6_val.proto = IPPROTO_SCTP;
 		}
 		for (i = 0; i < 4; i++) {
 			*(uint32_t *)&ipv6_mask.src_addr[i * 4] =
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-07-22 17:55:07.697516555 -0700
+++ 0022-net-enic-fix-flow-director-SCTP-matching.patch	2019-07-22 17:55:05.878471000 -0700
@@ -1,8 +1,10 @@
-From 4182ee7f0239563916b1f730d5a58f534769ee5e Mon Sep 17 00:00:00 2001
+From c6b1b6f30009928ddd521cb626e160b59eba6e1c Mon Sep 17 00:00:00 2001
 From: Hyong Youb Kim <hyonkim@cisco.com>
 Date: Sat, 2 Mar 2019 02:42:40 -0800
 Subject: [PATCH] net/enic: fix flow director SCTP matching
 
+[ upstream commit 4182ee7f0239563916b1f730d5a58f534769ee5e ]
+
 The firmware filter API does not have flags indicating "match SCTP
 packet". Instead, the driver needs to explicitly add an IP match and
 set the protocol number (132 for SCTP) in the IP header.
@@ -27,7 +29,6 @@
 enic.h as they are strictly local.
 
 Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300 series")
-Cc: stable@dpdk.org
 
 Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
 Reviewed-by: John Daley <johndale@cisco.com>
@@ -37,10 +38,10 @@
  2 files changed, 28 insertions(+), 18 deletions(-)
 
 diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
-index 6c497e9a29..fa4d5590e4 100644
+index 8bbff18c0a..d8c1dfefbc 100644
 --- a/drivers/net/enic/enic.h
 +++ b/drivers/net/enic/enic.h
-@@ -76,8 +76,8 @@ struct enic_fdir {
+@@ -91,8 +91,8 @@ struct enic_fdir {
  	u32 modes;
  	u32 types_mask;
  	void (*copy_fltr_fn)(struct filter_v2 *filt,
@@ -51,8 +52,8 @@
  };
  
  struct enic_soft_stats {
-@@ -342,9 +342,5 @@ int enic_link_update(struct enic *enic);
- bool enic_use_vector_rx_handler(struct enic *enic);
+@@ -303,9 +303,5 @@ int enic_set_mtu(struct enic *enic, uint16_t new_mtu);
+ int enic_link_update(struct enic *enic);
  void enic_fdir_info(struct enic *enic);
  void enic_fdir_info_get(struct enic *enic, struct rte_eth_fdir_info *stats);
 -void copy_fltr_v1(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
@@ -62,10 +63,10 @@
  extern const struct rte_flow_ops enic_flow_ops;
  #endif /* _ENIC_H_ */
 diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c
-index 9e9e548c23..48c8e62643 100644
+index c76af0d10c..e507399099 100644
 --- a/drivers/net/enic/enic_clsf.c
 +++ b/drivers/net/enic/enic_clsf.c
-@@ -36,6 +36,13 @@
+@@ -65,6 +65,13 @@
  
  #define ENICPMD_CLSF_HASH_ENTRIES       ENICPMD_FDIR_MAX
  
@@ -79,7 +80,7 @@
  void enic_fdir_stats_get(struct enic *enic, struct rte_eth_fdir_stats *stats)
  {
  	*stats = enic->fdir.stats;
-@@ -79,9 +86,9 @@ enic_set_layer(struct filter_generic_1 *gp, unsigned int flag,
+@@ -108,9 +115,9 @@ enic_set_layer(struct filter_generic_1 *gp, unsigned int flag,
  /* Copy Flow Director filter to a VIC ipv4 filter (for Cisco VICs
   * without advanced filter support.
   */
@@ -92,7 +93,7 @@
  {
  	fltr->type = FILTER_IPV4_5TUPLE;
  	fltr->u.ipv4.src_addr = rte_be_to_cpu_32(
-@@ -104,9 +111,9 @@ copy_fltr_v1(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
+@@ -133,9 +140,9 @@ copy_fltr_v1(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
  /* Copy Flow Director filter to a VIC generic filter (requires advanced
   * filter support.
   */
@@ -104,8 +105,8 @@
 +	     const struct rte_eth_fdir_masks *masks)
  {
  	struct filter_generic_1 *gp = &fltr->u.generic_1;
- 
-@@ -163,9 +170,11 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
+ 	int i;
+@@ -193,9 +200,11 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
  			sctp_val.tag = input->flow.sctp4_flow.verify_tag;
  		}
  
@@ -120,7 +121,7 @@
  		enic_set_layer(gp, 0, FILTER_GENERIC_1_L4, &sctp_mask,
  			       &sctp_val, sizeof(struct sctp_hdr));
  	}
-@@ -189,6 +198,10 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
+@@ -219,6 +228,10 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
  		if (input->flow.ip4_flow.proto) {
  			ip4_mask.next_proto_id = masks->ipv4_mask.proto;
  			ip4_val.next_proto_id = input->flow.ip4_flow.proto;
@@ -131,7 +132,7 @@
  		}
  		if (input->flow.ip4_flow.src_ip) {
  			ip4_mask.src_addr =  masks->ipv4_mask.src_ip;
-@@ -251,9 +264,6 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
+@@ -281,9 +294,6 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
  			sctp_val.tag = input->flow.sctp6_flow.verify_tag;
  		}
  
@@ -141,7 +142,7 @@
  		enic_set_layer(gp, 0, FILTER_GENERIC_1_L4, &sctp_mask,
  			       &sctp_val, sizeof(struct sctp_hdr));
  	}
-@@ -269,6 +279,10 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
+@@ -299,6 +309,10 @@ copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
  		if (input->flow.ipv6_flow.proto) {
  			ipv6_mask.proto = masks->ipv6_mask.proto;
  			ipv6_val.proto = input->flow.ipv6_flow.proto;
@@ -150,8 +151,8 @@
 +			ipv6_mask.proto = 0xff;
 +			ipv6_val.proto = IPPROTO_SCTP;
  		}
- 		memcpy(ipv6_mask.src_addr, masks->ipv6_mask.src_ip,
- 		       sizeof(ipv6_mask.src_addr));
+ 		for (i = 0; i < 4; i++) {
+ 			*(uint32_t *)&ipv6_mask.src_addr[i * 4] =
 -- 
 2.21.0
 

  parent reply	other threads:[~2019-07-23  1:02 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-23  0:59 [dpdk-stable] patch 'eal: improve musl compatibility of string functions' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/mlx5: fix instruction hotspot on replenishing Rx buffer' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'drivers/net: do not use private ethdev data' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/sfc: log port ID as 16-bit unsigned integer on panic' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/sfc: remove control path logging from Rx queue count' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/virtio: remove forward declaration' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'eal: support strlcat function' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'mbuf: fix a typo' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/bnxt: support IOVA VA mode' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'doc: fix a minor typo in testpmd guide' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/bonding: avoid warning for invalid port' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/bonding: fix reset active slave' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'mk: fix build of shared library with libbsd' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/bnx2x: fix segfaults due to stale interrupt status' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'doc: remove reference to rte.doc.mk in programmers guide' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'examples/ethtool: fix two typos' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'doc: fix link in Linux getting started guide' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'mk: fix AVX512 disabled warning on non x86' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'bus/vdev: fix debug message on probing' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'eal: fix check when retrieving current CPU affinity' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'eal: remove dead code in core list parsing' " Yongseok Koh
2019-07-23  0:59 ` Yongseok Koh [this message]
2019-07-23  0:59 ` [dpdk-stable] patch 'net/enic: fix SCTP match for flow API' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/enic: check for unsupported flow item types' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/ixgbe: fix crash on remove' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/mlx5: fix hex dump of error completion' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/mlx5: fix sync when handling Tx completions' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/i40e: fix time sync for 25G' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/qede: support IOVA VA mode' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/mlx5: fix packet inline on Tx queue wraparound' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'net/nfp: fix RSS query' " Yongseok Koh
2019-07-23  0:59 ` [dpdk-stable] patch 'app/testpmd: remove unused field from port struct' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'app/testpmd: fix a typo in log message' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/octeontx: fix vdev name' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'app/testpmd: fix stdout flush after printing stats' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bonding: fix LACP negotiation' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'doc: fix examples in bonding guide' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bonding: fix port id types' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bonding: fix queue index " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'drivers/net: fix possible overflow using strlcat' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix AES-CTR block size' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix debug logs' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'cryptodev: fix driver name comparison' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'malloc: fix documentation of realloc function' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'eal/linux: fix log levels for pagemap reading failure' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'test/spinlock: remove delay for correct benchmarking' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'test/spinlock: amortize the cost of getting time' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'spinlock: reimplement with atomic one-way barrier' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'eal/ppc: fix global memory " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'bus/dpaa: fix Rx discard register mask' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'power: fix frequency list buffer validation' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'bus/fslmc: remove unused include of error.h' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'bus/fslmc: fix build with musl libc' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'app/test: " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'app/testpmd: remove useless casts on statistics' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'ethdev: fix a typo' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bnxt: fix Rx VLAN offload flags' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/fm10k: fix VLAN strip offload flag' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/virtio: fix duplicate naming of include guard' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/virtio: remove useless condition' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'app/test: fix sprintf with strlcat' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'maintainers: update for IBM POWER' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'ring: fix an error message' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'event/sw: fix enqueue checks in self-test' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'crypto/dpaa2_sec: fix session clearing' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'ring: fix namesize macro documentation block' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bonding: fix buffer length when printing strings' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'test/distributor: replace sprintf with strlcpy' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'test/hash: replace sprintf with snprintf' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'eal: fix typo in comment of vector function' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'doc: fix links to doxygen and sphinx sites' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'cfgfile: replace strcat with strlcat' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'app/testpmd: fix typo in comment' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net: fix Tx VLAN flag for offload emulation' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'examples/l2fwd-cat: fix build on FreeBSD' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'app/crypto-perf: check range of socket id' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'kni: fix build with Linux 5.1' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bnx2x: fix memory leak' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bnx2x: fix ramrod timeout' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bnx2x: fix DMAE " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bnx2x: fix race for periodic flags' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/bnx2x: fix optic module verification' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'app/testpmd: set fixed flag for exact link speed' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'vhost: fix device leak on connection add failure' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'vhost: fix silent queue enabling with legacy guests' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/virtio: fix dangling pointer on failure' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'examples/vhost_scsi: fix null-check for parameter' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/i40e: fix dereference before null check in mbuf release' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'bitrate: fix unchecked return value' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'net/ixgbe: fix warning with GCC 9' " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'bus/fslmc: " Yongseok Koh
2019-07-23  1:00 ` [dpdk-stable] patch 'build: fix crash by disabling AVX512 with binutils 2.31' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/mlx5: fix comments mixing Rx and Tx' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'doc: fix interactive commands in testpmd guide' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/ring: avoid hard-coded length' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/ring: use calloc style where appropriate' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/ring: check length of ring name' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/ring: fix return value check' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/kni: " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/i40e: fix link speed for X722' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/mlx5: check Tx queue size overflow' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/mlx5: fix max number of queues for NEON Tx' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'app/testpmd: revert fixed flag for exact link speed' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'hash: fix doc about thread/process safety' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'doc: fix broken link in LPM guide' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'net/mlx5: fix release of Rx queue object' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'doc: fix typo in mlx5 guide' " Yongseok Koh
2019-07-23  1:01 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix build error log' " Yongseok Koh

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=20190723010115.6446-22-yskoh@mellanox.com \
    --to=yskoh@mellanox.com \
    --cc=hyonkim@cisco.com \
    --cc=johndale@cisco.com \
    --cc=stable@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).