* [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api
@ 2021-09-24 15:57 Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 1/5] kvargs: promote delimited parsing as stable Olivier Matz
` (6 more replies)
0 siblings, 7 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-24 15:57 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
This patchset promotes 2 functions rte_kvargs_parse_delim() and
rte_kvargs_get() as stable.
It also replaces rte_kvargs_strcmp() by a new one
rte_kvargs_get_with_value(), which is easier to use.
Olivier Matz (5):
kvargs: promote delimited parsing as stable
kvargs: promote get from key as stable
kvargs: new function to get from key and value
kvargs: remove experimental function to compare string
kvargs: fix comments style
drivers/bus/auxiliary/auxiliary_params.c | 9 ++--
drivers/bus/vdev/vdev_params.c | 13 +-----
lib/kvargs/rte_kvargs.c | 32 +++++++------
lib/kvargs/rte_kvargs.h | 59 ++++++++++++------------
lib/kvargs/version.map | 7 +--
5 files changed, 57 insertions(+), 63 deletions(-)
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH 1/5] kvargs: promote delimited parsing as stable
2021-09-24 15:57 [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Olivier Matz
@ 2021-09-24 15:57 ` Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 2/5] kvargs: promote get from key " Olivier Matz
` (5 subsequent siblings)
6 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-24 15:57 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
This function is used by EAL to parse key/value strings separated with
specified delimiters.
It was introduced in 2018 by commit 5d6af85ab00c ("kvargs: introduce a
more flexible parsing function"), and can be promoted as stable.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
lib/kvargs/rte_kvargs.h | 1 -
lib/kvargs/version.map | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index 12a8f90435..c30891c668 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -98,7 +98,6 @@ struct rte_kvargs *rte_kvargs_parse(const char *args,
* - A pointer to an allocated rte_kvargs structure on success
* - NULL on error
*/
-__rte_experimental
struct rte_kvargs *rte_kvargs_parse_delim(const char *args,
const char *const valid_keys[],
const char *valid_ends);
diff --git a/lib/kvargs/version.map b/lib/kvargs/version.map
index a07166b4d2..75b13fcb78 100644
--- a/lib/kvargs/version.map
+++ b/lib/kvargs/version.map
@@ -4,6 +4,7 @@ DPDK_22 {
rte_kvargs_count;
rte_kvargs_free;
rte_kvargs_parse;
+ rte_kvargs_parse_delim;
rte_kvargs_process;
local: *;
@@ -12,7 +13,6 @@ DPDK_22 {
EXPERIMENTAL {
global:
- rte_kvargs_parse_delim;
rte_kvargs_strcmp;
# added in 21.05
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH 2/5] kvargs: promote get from key as stable
2021-09-24 15:57 [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 1/5] kvargs: promote delimited parsing as stable Olivier Matz
@ 2021-09-24 15:57 ` Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 3/5] kvargs: new function to get from key and value Olivier Matz
` (4 subsequent siblings)
6 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-24 15:57 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
The function rte_kvargs_get() is used by eal and pci bus driver since
its introduction in commit 3ab385063cb9 ("kvargs: add get by key") and
commit d2a66ad79480 ("bus: add device arguments name parsing"), in
dpdk 21.05.
Let's promote it as stable.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
lib/kvargs/rte_kvargs.h | 1 -
lib/kvargs/version.map | 3 +--
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index c30891c668..328f0d3cc6 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -130,7 +130,6 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
* NULL if no key matches the input,
* a value associated with a matching key otherwise.
*/
-__rte_experimental
const char *rte_kvargs_get(const struct rte_kvargs *kvlist, const char *key);
/**
diff --git a/lib/kvargs/version.map b/lib/kvargs/version.map
index 75b13fcb78..236f35c02b 100644
--- a/lib/kvargs/version.map
+++ b/lib/kvargs/version.map
@@ -3,6 +3,7 @@ DPDK_22 {
rte_kvargs_count;
rte_kvargs_free;
+ rte_kvargs_get;
rte_kvargs_parse;
rte_kvargs_parse_delim;
rte_kvargs_process;
@@ -15,6 +16,4 @@ EXPERIMENTAL {
rte_kvargs_strcmp;
- # added in 21.05
- rte_kvargs_get;
};
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH 3/5] kvargs: new function to get from key and value
2021-09-24 15:57 [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 1/5] kvargs: promote delimited parsing as stable Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 2/5] kvargs: promote get from key " Olivier Matz
@ 2021-09-24 15:57 ` Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 4/5] kvargs: remove experimental function to compare string Olivier Matz
` (3 subsequent siblings)
6 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-24 15:57 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
A quite common scenario with kvargs is to lookup for a <key>=<value> in
a kvlist. For instance, check if name=foo is present in
name=toto,name=foo,name=bar. This is currently done in drivers/bus with
rte_kvargs_process() + the rte_kvargs_strcmp() handler.
This approach is not straightforward, and can be replaced by this new
function.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
drivers/bus/auxiliary/auxiliary_params.c | 9 ++++----
drivers/bus/vdev/vdev_params.c | 13 ++---------
lib/kvargs/rte_kvargs.c | 23 +++++++++++++++----
lib/kvargs/rte_kvargs.h | 29 +++++++++++++++++++++++-
lib/kvargs/version.map | 2 ++
5 files changed, 54 insertions(+), 22 deletions(-)
diff --git a/drivers/bus/auxiliary/auxiliary_params.c b/drivers/bus/auxiliary/auxiliary_params.c
index cd3fa56cb4..a9c7853ed1 100644
--- a/drivers/bus/auxiliary/auxiliary_params.c
+++ b/drivers/bus/auxiliary/auxiliary_params.c
@@ -25,13 +25,12 @@ auxiliary_dev_match(const struct rte_device *dev,
const void *_kvlist)
{
const struct rte_kvargs *kvlist = _kvlist;
- int ret;
+ const char *key = auxiliary_params_keys[RTE_AUXILIARY_PARAM_NAME];
- ret = rte_kvargs_process(kvlist,
- auxiliary_params_keys[RTE_AUXILIARY_PARAM_NAME],
- rte_kvargs_strcmp, (void *)(uintptr_t)dev->name);
+ if (rte_kvargs_get_with_value(kvlist, key, dev->name) == NULL)
+ return -1;
- return ret != 0 ? -1 : 0;
+ return 0;
}
void *
diff --git a/drivers/bus/vdev/vdev_params.c b/drivers/bus/vdev/vdev_params.c
index 6f74704d1c..37d95395e7 100644
--- a/drivers/bus/vdev/vdev_params.c
+++ b/drivers/bus/vdev/vdev_params.c
@@ -26,19 +26,10 @@ static int
vdev_dev_match(const struct rte_device *dev,
const void *_kvlist)
{
- int ret;
const struct rte_kvargs *kvlist = _kvlist;
- char *name;
+ const char *key = vdev_params_keys[RTE_VDEV_PARAM_NAME];
- /* cannot pass const dev->name to rte_kvargs_process() */
- name = strdup(dev->name);
- if (name == NULL)
- return -1;
- ret = rte_kvargs_process(kvlist,
- vdev_params_keys[RTE_VDEV_PARAM_NAME],
- rte_kvargs_strcmp, name);
- free(name);
- if (ret != 0)
+ if (rte_kvargs_get_with_value(kvlist, key, dev->name) == NULL)
return -1;
return 0;
diff --git a/lib/kvargs/rte_kvargs.c b/lib/kvargs/rte_kvargs.c
index 38e9d5c1ca..20abb23183 100644
--- a/lib/kvargs/rte_kvargs.c
+++ b/lib/kvargs/rte_kvargs.c
@@ -204,21 +204,34 @@ rte_kvargs_free(struct rte_kvargs *kvlist)
free(kvlist);
}
-/* Lookup a value in an rte_kvargs list by its key. */
+/* Lookup a value in an rte_kvargs list by its key and value. */
const char *
-rte_kvargs_get(const struct rte_kvargs *kvlist, const char *key)
+rte_kvargs_get_with_value(const struct rte_kvargs *kvlist, const char *key,
+ const char *value)
{
unsigned int i;
- if (kvlist == NULL || key == NULL)
+ if (kvlist == NULL)
return NULL;
for (i = 0; i < kvlist->count; ++i) {
- if (strcmp(kvlist->pairs[i].key, key) == 0)
- return kvlist->pairs[i].value;
+ if (key != NULL && strcmp(kvlist->pairs[i].key, key) != 0)
+ continue;
+ if (value != NULL && strcmp(kvlist->pairs[i].value, value) != 0)
+ continue;
+ return kvlist->pairs[i].value;
}
return NULL;
}
+/* Lookup a value in an rte_kvargs list by its key. */
+const char *
+rte_kvargs_get(const struct rte_kvargs *kvlist, const char *key)
+{
+ if (kvlist == NULL || key == NULL)
+ return NULL;
+ return rte_kvargs_get_with_value(kvlist, key, NULL);
+}
+
/*
* Parse the arguments "key=value,key=value,..." string and return
* an allocated structure that contains a key/value list. Also
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index 328f0d3cc6..e40df1bd2a 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -116,7 +116,7 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
/**
* Get the value associated with a given key.
*
- * If multiple key matches, the value of the first one is returned.
+ * If multiple keys match, the value of the first one is returned.
*
* The memory returned is allocated as part of the rte_kvargs structure,
* it must never be modified.
@@ -132,6 +132,33 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
*/
const char *rte_kvargs_get(const struct rte_kvargs *kvlist, const char *key);
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * Get the value associated with a given key and value.
+ *
+ * Find the first entry in the kvlist whose key and value match the
+ * ones passed as argument.
+ *
+ * The memory returned is allocated as part of the rte_kvargs structure,
+ * it must never be modified.
+ *
+ * @param kvlist
+ * A list of rte_kvargs pair of 'key=value'.
+ * @param key
+ * The matching key. If NULL, any key will match.
+ * @param value
+ * The matching value. If NULL, any value will match.
+ *
+ * @return
+ * NULL if no key matches the input,
+ * a value associated with a matching key otherwise.
+ */
+__rte_experimental
+const char *rte_kvargs_get_with_value(const struct rte_kvargs *kvlist,
+ const char *key, const char *value);
+
/**
* Call a handler function for each key/value matching the key
*
diff --git a/lib/kvargs/version.map b/lib/kvargs/version.map
index 236f35c02b..82879b7140 100644
--- a/lib/kvargs/version.map
+++ b/lib/kvargs/version.map
@@ -16,4 +16,6 @@ EXPERIMENTAL {
rte_kvargs_strcmp;
+ # added in 21.11
+ rte_kvargs_get_with_value;
};
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH 4/5] kvargs: remove experimental function to compare string
2021-09-24 15:57 [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Olivier Matz
` (2 preceding siblings ...)
2021-09-24 15:57 ` [dpdk-dev] [PATCH 3/5] kvargs: new function to get from key and value Olivier Matz
@ 2021-09-24 15:57 ` Olivier Matz
2021-09-26 16:30 ` Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 5/5] kvargs: fix comments style Olivier Matz
` (2 subsequent siblings)
6 siblings, 1 reply; 19+ messages in thread
From: Olivier Matz @ 2021-09-24 15:57 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
The function was designed to be used as a handler for
rte_kvargs_process() to compare the value string in a kvlist. For
readability, its usages in DPDK have been replaced by
rte_kvargs_get_with_value() in previous commit.
Remove this function, as it is not used anymore.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
lib/kvargs/rte_kvargs.c | 9 ---------
lib/kvargs/rte_kvargs.h | 26 --------------------------
2 files changed, 35 deletions(-)
diff --git a/lib/kvargs/rte_kvargs.c b/lib/kvargs/rte_kvargs.c
index 20abb23183..11f624ef14 100644
--- a/lib/kvargs/rte_kvargs.c
+++ b/lib/kvargs/rte_kvargs.c
@@ -283,12 +283,3 @@ rte_kvargs_parse_delim(const char *args, const char * const valid_keys[],
free(copy);
return kvlist;
}
-
-int
-rte_kvargs_strcmp(const char *key __rte_unused,
- const char *value, void *opaque)
-{
- const char *str = opaque;
-
- return -abs(strcmp(str, value));
-}
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index e40df1bd2a..3c1754c3d9 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -197,32 +197,6 @@ int rte_kvargs_process(const struct rte_kvargs *kvlist,
unsigned rte_kvargs_count(const struct rte_kvargs *kvlist,
const char *key_match);
-/**
- * Generic kvarg handler for string comparison.
- *
- * This function can be used for a generic string comparison processing
- * on a list of kvargs.
- *
- * @param key
- * kvarg pair key.
- *
- * @param value
- * kvarg pair value.
- *
- * @param opaque
- * Opaque pointer to a string.
- *
- * @return
- * 0 if the strings match.
- * !0 otherwise or on error.
- *
- * Unlike strcmp, comparison ordering is not kept.
- * In order for rte_kvargs_process to stop processing on match error,
- * a negative value is returned even if strcmp had returned a positive one.
- */
-__rte_experimental
-int rte_kvargs_strcmp(const char *key, const char *value, void *opaque);
-
#ifdef __cplusplus
}
#endif
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH 5/5] kvargs: fix comments style
2021-09-24 15:57 [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Olivier Matz
` (3 preceding siblings ...)
2021-09-24 15:57 ` [dpdk-dev] [PATCH 4/5] kvargs: remove experimental function to compare string Olivier Matz
@ 2021-09-24 15:57 ` Olivier Matz
2021-09-25 7:02 ` [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Xueming(Steven) Li
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
6 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-24 15:57 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
A '*' is missing at 2 places, add them.
Fixes: e1a00536c8ed ("kvargs: add a new library to parse key/value arguments")
Fixes: 3ab385063cb9 ("kvargs: add get by key")
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
lib/kvargs/rte_kvargs.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index 3c1754c3d9..359a9f5b09 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -125,7 +125,7 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
* A list of rte_kvargs pair of 'key=value'.
* @param key
* The matching key.
-
+ *
* @return
* NULL if no key matches the input,
* a value associated with a matching key otherwise.
@@ -190,7 +190,7 @@ int rte_kvargs_process(const struct rte_kvargs *kvlist,
* The rte_kvargs structure
* @param key_match
* The key that should match, or NULL to count all associations
-
+ *
* @return
* The number of entries
*/
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api
2021-09-24 15:57 [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Olivier Matz
` (4 preceding siblings ...)
2021-09-24 15:57 ` [dpdk-dev] [PATCH 5/5] kvargs: fix comments style Olivier Matz
@ 2021-09-25 7:02 ` Xueming(Steven) Li
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
6 siblings, 0 replies; 19+ messages in thread
From: Xueming(Steven) Li @ 2021-09-25 7:02 UTC (permalink / raw)
To: olivier.matz, dev; +Cc: mdr, bruce.richardson, grive
On Fri, 2021-09-24 at 17:57 +0200, Olivier Matz wrote:
> This patchset promotes 2 functions rte_kvargs_parse_delim() and
> rte_kvargs_get() as stable.
>
> It also replaces rte_kvargs_strcmp() by a new one
> rte_kvargs_get_with_value(), which is easier to use.
>
> Olivier Matz (5):
> kvargs: promote delimited parsing as stable
> kvargs: promote get from key as stable
> kvargs: new function to get from key and value
> kvargs: remove experimental function to compare string
> kvargs: fix comments style
>
> drivers/bus/auxiliary/auxiliary_params.c | 9 ++--
> drivers/bus/vdev/vdev_params.c | 13 +-----
> lib/kvargs/rte_kvargs.c | 32 +++++++------
> lib/kvargs/rte_kvargs.h | 59 ++++++++++++------------
> lib/kvargs/version.map | 7 +--
> 5 files changed, 57 insertions(+), 63 deletions(-)
>
The whole series looks good to me, the new function that match key and
value directly looks more efficient, thanks!
Reviewed-by: Xueming Li <xuemingl@nvidia.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [dpdk-dev] [PATCH 4/5] kvargs: remove experimental function to compare string
2021-09-24 15:57 ` [dpdk-dev] [PATCH 4/5] kvargs: remove experimental function to compare string Olivier Matz
@ 2021-09-26 16:30 ` Olivier Matz
0 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-26 16:30 UTC (permalink / raw)
To: dev; +Cc: Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
On Fri, Sep 24, 2021 at 05:57:39PM +0200, Olivier Matz wrote:
> The function was designed to be used as a handler for
> rte_kvargs_process() to compare the value string in a kvlist. For
> readability, its usages in DPDK have been replaced by
> rte_kvargs_get_with_value() in previous commit.
>
> Remove this function, as it is not used anymore.
>
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Self-nack, I forgot to remove the rte_kvargs_strcmp entry
from version.map.
Will send a v2.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH v2 0/5] kvargs: promote or remove experimental api
2021-09-24 15:57 [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Olivier Matz
` (5 preceding siblings ...)
2021-09-25 7:02 ` [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Xueming(Steven) Li
@ 2021-09-29 21:39 ` Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 1/5] kvargs: promote delimited parsing as stable Olivier Matz
` (5 more replies)
6 siblings, 6 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-29 21:39 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
This patchset promotes 2 functions rte_kvargs_parse_delim() and
rte_kvargs_get() as stable.
It also replaces rte_kvargs_strcmp() by a new one
rte_kvargs_get_with_value(), which is easier to use.
v2
* remove rte_kvargs_strcmp from version.map
Olivier Matz (5):
kvargs: promote delimited parsing as stable
kvargs: promote get from key as stable
kvargs: new function to get from key and value
kvargs: remove experimental function to compare string
kvargs: fix comments style
drivers/bus/auxiliary/auxiliary_params.c | 9 ++--
drivers/bus/vdev/vdev_params.c | 13 +-----
lib/kvargs/rte_kvargs.c | 32 +++++++------
lib/kvargs/rte_kvargs.h | 59 ++++++++++++------------
lib/kvargs/version.map | 9 ++--
5 files changed, 57 insertions(+), 65 deletions(-)
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH v2 1/5] kvargs: promote delimited parsing as stable
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
@ 2021-09-29 21:39 ` Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 2/5] kvargs: promote get from key " Olivier Matz
` (4 subsequent siblings)
5 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-29 21:39 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
This function is used by EAL to parse key/value strings separated with
specified delimiters.
It was introduced in 2018 by commit 5d6af85ab00c ("kvargs: introduce a
more flexible parsing function"), and can be promoted as stable.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Xueming Li <xuemingl@nvidia.com>
---
lib/kvargs/rte_kvargs.h | 1 -
lib/kvargs/version.map | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index 12a8f90435..c30891c668 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -98,7 +98,6 @@ struct rte_kvargs *rte_kvargs_parse(const char *args,
* - A pointer to an allocated rte_kvargs structure on success
* - NULL on error
*/
-__rte_experimental
struct rte_kvargs *rte_kvargs_parse_delim(const char *args,
const char *const valid_keys[],
const char *valid_ends);
diff --git a/lib/kvargs/version.map b/lib/kvargs/version.map
index a07166b4d2..75b13fcb78 100644
--- a/lib/kvargs/version.map
+++ b/lib/kvargs/version.map
@@ -4,6 +4,7 @@ DPDK_22 {
rte_kvargs_count;
rte_kvargs_free;
rte_kvargs_parse;
+ rte_kvargs_parse_delim;
rte_kvargs_process;
local: *;
@@ -12,7 +13,6 @@ DPDK_22 {
EXPERIMENTAL {
global:
- rte_kvargs_parse_delim;
rte_kvargs_strcmp;
# added in 21.05
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH v2 2/5] kvargs: promote get from key as stable
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 1/5] kvargs: promote delimited parsing as stable Olivier Matz
@ 2021-09-29 21:39 ` Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 3/5] kvargs: new function to get from key and value Olivier Matz
` (3 subsequent siblings)
5 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-29 21:39 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
The function rte_kvargs_get() is used by eal and pci bus driver since
its introduction in commit 3ab385063cb9 ("kvargs: add get by key") and
commit d2a66ad79480 ("bus: add device arguments name parsing"), in
dpdk 21.05.
Let's promote it as stable.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Xueming Li <xuemingl@nvidia.com>
---
lib/kvargs/rte_kvargs.h | 1 -
lib/kvargs/version.map | 3 +--
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index c30891c668..328f0d3cc6 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -130,7 +130,6 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
* NULL if no key matches the input,
* a value associated with a matching key otherwise.
*/
-__rte_experimental
const char *rte_kvargs_get(const struct rte_kvargs *kvlist, const char *key);
/**
diff --git a/lib/kvargs/version.map b/lib/kvargs/version.map
index 75b13fcb78..236f35c02b 100644
--- a/lib/kvargs/version.map
+++ b/lib/kvargs/version.map
@@ -3,6 +3,7 @@ DPDK_22 {
rte_kvargs_count;
rte_kvargs_free;
+ rte_kvargs_get;
rte_kvargs_parse;
rte_kvargs_parse_delim;
rte_kvargs_process;
@@ -15,6 +16,4 @@ EXPERIMENTAL {
rte_kvargs_strcmp;
- # added in 21.05
- rte_kvargs_get;
};
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH v2 3/5] kvargs: new function to get from key and value
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 1/5] kvargs: promote delimited parsing as stable Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 2/5] kvargs: promote get from key " Olivier Matz
@ 2021-09-29 21:39 ` Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 4/5] kvargs: remove experimental function to compare string Olivier Matz
` (2 subsequent siblings)
5 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-29 21:39 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
A quite common scenario with kvargs is to lookup for a <key>=<value> in
a kvlist. For instance, check if name=foo is present in
name=toto,name=foo,name=bar. This is currently done in drivers/bus with
rte_kvargs_process() + the rte_kvargs_strcmp() handler.
This approach is not straightforward, and can be replaced by this new
function.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Xueming Li <xuemingl@nvidia.com>
---
drivers/bus/auxiliary/auxiliary_params.c | 9 ++++----
drivers/bus/vdev/vdev_params.c | 13 ++---------
lib/kvargs/rte_kvargs.c | 23 +++++++++++++++----
lib/kvargs/rte_kvargs.h | 29 +++++++++++++++++++++++-
lib/kvargs/version.map | 2 ++
5 files changed, 54 insertions(+), 22 deletions(-)
diff --git a/drivers/bus/auxiliary/auxiliary_params.c b/drivers/bus/auxiliary/auxiliary_params.c
index cd3fa56cb4..a9c7853ed1 100644
--- a/drivers/bus/auxiliary/auxiliary_params.c
+++ b/drivers/bus/auxiliary/auxiliary_params.c
@@ -25,13 +25,12 @@ auxiliary_dev_match(const struct rte_device *dev,
const void *_kvlist)
{
const struct rte_kvargs *kvlist = _kvlist;
- int ret;
+ const char *key = auxiliary_params_keys[RTE_AUXILIARY_PARAM_NAME];
- ret = rte_kvargs_process(kvlist,
- auxiliary_params_keys[RTE_AUXILIARY_PARAM_NAME],
- rte_kvargs_strcmp, (void *)(uintptr_t)dev->name);
+ if (rte_kvargs_get_with_value(kvlist, key, dev->name) == NULL)
+ return -1;
- return ret != 0 ? -1 : 0;
+ return 0;
}
void *
diff --git a/drivers/bus/vdev/vdev_params.c b/drivers/bus/vdev/vdev_params.c
index 6f74704d1c..37d95395e7 100644
--- a/drivers/bus/vdev/vdev_params.c
+++ b/drivers/bus/vdev/vdev_params.c
@@ -26,19 +26,10 @@ static int
vdev_dev_match(const struct rte_device *dev,
const void *_kvlist)
{
- int ret;
const struct rte_kvargs *kvlist = _kvlist;
- char *name;
+ const char *key = vdev_params_keys[RTE_VDEV_PARAM_NAME];
- /* cannot pass const dev->name to rte_kvargs_process() */
- name = strdup(dev->name);
- if (name == NULL)
- return -1;
- ret = rte_kvargs_process(kvlist,
- vdev_params_keys[RTE_VDEV_PARAM_NAME],
- rte_kvargs_strcmp, name);
- free(name);
- if (ret != 0)
+ if (rte_kvargs_get_with_value(kvlist, key, dev->name) == NULL)
return -1;
return 0;
diff --git a/lib/kvargs/rte_kvargs.c b/lib/kvargs/rte_kvargs.c
index 38e9d5c1ca..20abb23183 100644
--- a/lib/kvargs/rte_kvargs.c
+++ b/lib/kvargs/rte_kvargs.c
@@ -204,21 +204,34 @@ rte_kvargs_free(struct rte_kvargs *kvlist)
free(kvlist);
}
-/* Lookup a value in an rte_kvargs list by its key. */
+/* Lookup a value in an rte_kvargs list by its key and value. */
const char *
-rte_kvargs_get(const struct rte_kvargs *kvlist, const char *key)
+rte_kvargs_get_with_value(const struct rte_kvargs *kvlist, const char *key,
+ const char *value)
{
unsigned int i;
- if (kvlist == NULL || key == NULL)
+ if (kvlist == NULL)
return NULL;
for (i = 0; i < kvlist->count; ++i) {
- if (strcmp(kvlist->pairs[i].key, key) == 0)
- return kvlist->pairs[i].value;
+ if (key != NULL && strcmp(kvlist->pairs[i].key, key) != 0)
+ continue;
+ if (value != NULL && strcmp(kvlist->pairs[i].value, value) != 0)
+ continue;
+ return kvlist->pairs[i].value;
}
return NULL;
}
+/* Lookup a value in an rte_kvargs list by its key. */
+const char *
+rte_kvargs_get(const struct rte_kvargs *kvlist, const char *key)
+{
+ if (kvlist == NULL || key == NULL)
+ return NULL;
+ return rte_kvargs_get_with_value(kvlist, key, NULL);
+}
+
/*
* Parse the arguments "key=value,key=value,..." string and return
* an allocated structure that contains a key/value list. Also
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index 328f0d3cc6..e40df1bd2a 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -116,7 +116,7 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
/**
* Get the value associated with a given key.
*
- * If multiple key matches, the value of the first one is returned.
+ * If multiple keys match, the value of the first one is returned.
*
* The memory returned is allocated as part of the rte_kvargs structure,
* it must never be modified.
@@ -132,6 +132,33 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
*/
const char *rte_kvargs_get(const struct rte_kvargs *kvlist, const char *key);
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * Get the value associated with a given key and value.
+ *
+ * Find the first entry in the kvlist whose key and value match the
+ * ones passed as argument.
+ *
+ * The memory returned is allocated as part of the rte_kvargs structure,
+ * it must never be modified.
+ *
+ * @param kvlist
+ * A list of rte_kvargs pair of 'key=value'.
+ * @param key
+ * The matching key. If NULL, any key will match.
+ * @param value
+ * The matching value. If NULL, any value will match.
+ *
+ * @return
+ * NULL if no key matches the input,
+ * a value associated with a matching key otherwise.
+ */
+__rte_experimental
+const char *rte_kvargs_get_with_value(const struct rte_kvargs *kvlist,
+ const char *key, const char *value);
+
/**
* Call a handler function for each key/value matching the key
*
diff --git a/lib/kvargs/version.map b/lib/kvargs/version.map
index 236f35c02b..82879b7140 100644
--- a/lib/kvargs/version.map
+++ b/lib/kvargs/version.map
@@ -16,4 +16,6 @@ EXPERIMENTAL {
rte_kvargs_strcmp;
+ # added in 21.11
+ rte_kvargs_get_with_value;
};
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH v2 4/5] kvargs: remove experimental function to compare string
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
` (2 preceding siblings ...)
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 3/5] kvargs: new function to get from key and value Olivier Matz
@ 2021-09-29 21:39 ` Olivier Matz
2021-09-30 14:00 ` Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 5/5] kvargs: fix comments style Olivier Matz
2021-09-30 8:25 ` [dpdk-dev] [PATCH v2 0/5] kvargs: promote or remove experimental api David Marchand
5 siblings, 1 reply; 19+ messages in thread
From: Olivier Matz @ 2021-09-29 21:39 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
The function was designed to be used as a handler for
rte_kvargs_process() to compare the value string in a kvlist. For
readability, its usages in DPDK have been replaced by
rte_kvargs_get_with_value() in previous commit.
Remove this function, as it is not used anymore.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Xueming Li <xuemingl@nvidia.com>
---
lib/kvargs/rte_kvargs.c | 9 ---------
lib/kvargs/rte_kvargs.h | 26 --------------------------
lib/kvargs/version.map | 2 --
3 files changed, 37 deletions(-)
diff --git a/lib/kvargs/rte_kvargs.c b/lib/kvargs/rte_kvargs.c
index 20abb23183..11f624ef14 100644
--- a/lib/kvargs/rte_kvargs.c
+++ b/lib/kvargs/rte_kvargs.c
@@ -283,12 +283,3 @@ rte_kvargs_parse_delim(const char *args, const char * const valid_keys[],
free(copy);
return kvlist;
}
-
-int
-rte_kvargs_strcmp(const char *key __rte_unused,
- const char *value, void *opaque)
-{
- const char *str = opaque;
-
- return -abs(strcmp(str, value));
-}
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index e40df1bd2a..3c1754c3d9 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -197,32 +197,6 @@ int rte_kvargs_process(const struct rte_kvargs *kvlist,
unsigned rte_kvargs_count(const struct rte_kvargs *kvlist,
const char *key_match);
-/**
- * Generic kvarg handler for string comparison.
- *
- * This function can be used for a generic string comparison processing
- * on a list of kvargs.
- *
- * @param key
- * kvarg pair key.
- *
- * @param value
- * kvarg pair value.
- *
- * @param opaque
- * Opaque pointer to a string.
- *
- * @return
- * 0 if the strings match.
- * !0 otherwise or on error.
- *
- * Unlike strcmp, comparison ordering is not kept.
- * In order for rte_kvargs_process to stop processing on match error,
- * a negative value is returned even if strcmp had returned a positive one.
- */
-__rte_experimental
-int rte_kvargs_strcmp(const char *key, const char *value, void *opaque);
-
#ifdef __cplusplus
}
#endif
diff --git a/lib/kvargs/version.map b/lib/kvargs/version.map
index 82879b7140..0d42cd58a8 100644
--- a/lib/kvargs/version.map
+++ b/lib/kvargs/version.map
@@ -14,8 +14,6 @@ DPDK_22 {
EXPERIMENTAL {
global:
- rte_kvargs_strcmp;
-
# added in 21.11
rte_kvargs_get_with_value;
};
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-dev] [PATCH v2 5/5] kvargs: fix comments style
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
` (3 preceding siblings ...)
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 4/5] kvargs: remove experimental function to compare string Olivier Matz
@ 2021-09-29 21:39 ` Olivier Matz
2021-09-30 8:25 ` [dpdk-dev] [PATCH v2 0/5] kvargs: promote or remove experimental api David Marchand
5 siblings, 0 replies; 19+ messages in thread
From: Olivier Matz @ 2021-09-29 21:39 UTC (permalink / raw)
To: dev
Cc: Olivier Matz, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
A '*' is missing at 2 places, add them.
Fixes: e1a00536c8ed ("kvargs: add a new library to parse key/value arguments")
Fixes: 3ab385063cb9 ("kvargs: add get by key")
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Xueming Li <xuemingl@nvidia.com>
---
lib/kvargs/rte_kvargs.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h
index 3c1754c3d9..359a9f5b09 100644
--- a/lib/kvargs/rte_kvargs.h
+++ b/lib/kvargs/rte_kvargs.h
@@ -125,7 +125,7 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
* A list of rte_kvargs pair of 'key=value'.
* @param key
* The matching key.
-
+ *
* @return
* NULL if no key matches the input,
* a value associated with a matching key otherwise.
@@ -190,7 +190,7 @@ int rte_kvargs_process(const struct rte_kvargs *kvlist,
* The rte_kvargs structure
* @param key_match
* The key that should match, or NULL to count all associations
-
+ *
* @return
* The number of entries
*/
--
2.30.2
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [dpdk-dev] [PATCH v2 0/5] kvargs: promote or remove experimental api
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
` (4 preceding siblings ...)
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 5/5] kvargs: fix comments style Olivier Matz
@ 2021-09-30 8:25 ` David Marchand
2021-09-30 9:57 ` Kinsella, Ray
5 siblings, 1 reply; 19+ messages in thread
From: David Marchand @ 2021-09-30 8:25 UTC (permalink / raw)
To: Olivier Matz
Cc: dev, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
On Wed, Sep 29, 2021 at 11:40 PM Olivier Matz <olivier.matz@6wind.com> wrote:
>
> This patchset promotes 2 functions rte_kvargs_parse_delim() and
> rte_kvargs_get() as stable.
>
> It also replaces rte_kvargs_strcmp() by a new one
> rte_kvargs_get_with_value(), which is easier to use.
>
> v2
> * remove rte_kvargs_strcmp from version.map
>
> Olivier Matz (5):
> kvargs: promote delimited parsing as stable
> kvargs: promote get from key as stable
> kvargs: new function to get from key and value
> kvargs: remove experimental function to compare string
> kvargs: fix comments style
Thanks, for the series,
Reviewed-by: David Marchand <david.marchand@redhat.com>
--
David Marchand
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [dpdk-dev] [PATCH v2 0/5] kvargs: promote or remove experimental api
2021-09-30 8:25 ` [dpdk-dev] [PATCH v2 0/5] kvargs: promote or remove experimental api David Marchand
@ 2021-09-30 9:57 ` Kinsella, Ray
2021-09-30 16:19 ` David Marchand
0 siblings, 1 reply; 19+ messages in thread
From: Kinsella, Ray @ 2021-09-30 9:57 UTC (permalink / raw)
To: David Marchand, Olivier Matz
Cc: dev, Bruce Richardson, Xueming Li, Gaetan Rivet
On 30/09/2021 09:25, David Marchand wrote:
> On Wed, Sep 29, 2021 at 11:40 PM Olivier Matz <olivier.matz@6wind.com> wrote:
>>
>> This patchset promotes 2 functions rte_kvargs_parse_delim() and
>> rte_kvargs_get() as stable.
>>
>> It also replaces rte_kvargs_strcmp() by a new one
>> rte_kvargs_get_with_value(), which is easier to use.
>>
>> v2
>> * remove rte_kvargs_strcmp from version.map
>>
>> Olivier Matz (5):
>> kvargs: promote delimited parsing as stable
>> kvargs: promote get from key as stable
>> kvargs: new function to get from key and value
>> kvargs: remove experimental function to compare string
>> kvargs: fix comments style
>
> Thanks, for the series,
> Reviewed-by: David Marchand <david.marchand@redhat.com>
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [dpdk-dev] [PATCH v2 4/5] kvargs: remove experimental function to compare string
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 4/5] kvargs: remove experimental function to compare string Olivier Matz
@ 2021-09-30 14:00 ` Olivier Matz
2021-09-30 15:19 ` David Marchand
0 siblings, 1 reply; 19+ messages in thread
From: Olivier Matz @ 2021-09-30 14:00 UTC (permalink / raw)
To: dev, David Marchand
Cc: Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
On Wed, Sep 29, 2021 at 11:39:42PM +0200, Olivier Matz wrote:
> The function was designed to be used as a handler for
> rte_kvargs_process() to compare the value string in a kvlist. For
> readability, its usages in DPDK have been replaced by
> rte_kvargs_get_with_value() in previous commit.
>
> Remove this function, as it is not used anymore.
>
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> Reviewed-by: Xueming Li <xuemingl@nvidia.com>
Maybe a quick note could be added in the release note. Something like
this:
* kvargs: The experimental function ``rte_kvargs_strcmp()`` has been
removed. Its usages have been replaced by a new function
``rte_kvargs_get_with_value()``.
David, do you want me to send a v3 with this note?
Thanks,
Olivier
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [dpdk-dev] [PATCH v2 4/5] kvargs: remove experimental function to compare string
2021-09-30 14:00 ` Olivier Matz
@ 2021-09-30 15:19 ` David Marchand
0 siblings, 0 replies; 19+ messages in thread
From: David Marchand @ 2021-09-30 15:19 UTC (permalink / raw)
To: Olivier Matz
Cc: dev, Bruce Richardson, Xueming Li, Gaetan Rivet, Ray Kinsella
On Thu, Sep 30, 2021 at 4:00 PM Olivier Matz <olivier.matz@6wind.com> wrote:
>
> On Wed, Sep 29, 2021 at 11:39:42PM +0200, Olivier Matz wrote:
> > The function was designed to be used as a handler for
> > rte_kvargs_process() to compare the value string in a kvlist. For
> > readability, its usages in DPDK have been replaced by
> > rte_kvargs_get_with_value() in previous commit.
> >
> > Remove this function, as it is not used anymore.
> >
> > Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> > Reviewed-by: Xueming Li <xuemingl@nvidia.com>
>
> Maybe a quick note could be added in the release note. Something like
> this:
>
> * kvargs: The experimental function ``rte_kvargs_strcmp()`` has been
> removed. Its usages have been replaced by a new function
> ``rte_kvargs_get_with_value()``.
>
> David, do you want me to send a v3 with this note?
Yes, a RN update for API changes is a good practice :-).
No need to send v3, I'll add it and merge the series (soon).
Thanks Olivier.
--
David Marchand
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [dpdk-dev] [PATCH v2 0/5] kvargs: promote or remove experimental api
2021-09-30 9:57 ` Kinsella, Ray
@ 2021-09-30 16:19 ` David Marchand
0 siblings, 0 replies; 19+ messages in thread
From: David Marchand @ 2021-09-30 16:19 UTC (permalink / raw)
To: Olivier Matz
Cc: dev, Kinsella, Ray, Bruce Richardson, Xueming Li, Gaetan Rivet
On Thu, Sep 30, 2021 at 11:57 AM Kinsella, Ray <mdr@ashroe.eu> wrote:
> On 30/09/2021 09:25, David Marchand wrote:
> > On Wed, Sep 29, 2021 at 11:40 PM Olivier Matz <olivier.matz@6wind.com> wrote:
> >>
> >> This patchset promotes 2 functions rte_kvargs_parse_delim() and
> >> rte_kvargs_get() as stable.
> >>
> >> It also replaces rte_kvargs_strcmp() by a new one
> >> rte_kvargs_get_with_value(), which is easier to use.
> >>
> >> v2
> >> * remove rte_kvargs_strcmp from version.map
> >>
> >> Olivier Matz (5):
> >> kvargs: promote delimited parsing as stable
> >> kvargs: promote get from key as stable
> >> kvargs: new function to get from key and value
> >> kvargs: remove experimental function to compare string
> >> kvargs: fix comments style
> >
> > Thanks, for the series,
> > Reviewed-by: David Marchand <david.marchand@redhat.com>
> Acked-by: Ray Kinsella <mdr@ashroe.eu>
>
Added RN update and applied as discussed.
Thanks.
--
David Marchand
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2021-09-30 16:19 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-24 15:57 [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 1/5] kvargs: promote delimited parsing as stable Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 2/5] kvargs: promote get from key " Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 3/5] kvargs: new function to get from key and value Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 4/5] kvargs: remove experimental function to compare string Olivier Matz
2021-09-26 16:30 ` Olivier Matz
2021-09-24 15:57 ` [dpdk-dev] [PATCH 5/5] kvargs: fix comments style Olivier Matz
2021-09-25 7:02 ` [dpdk-dev] [PATCH 0/5] kvargs: promote or remove experimental api Xueming(Steven) Li
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 " Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 1/5] kvargs: promote delimited parsing as stable Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 2/5] kvargs: promote get from key " Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 3/5] kvargs: new function to get from key and value Olivier Matz
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 4/5] kvargs: remove experimental function to compare string Olivier Matz
2021-09-30 14:00 ` Olivier Matz
2021-09-30 15:19 ` David Marchand
2021-09-29 21:39 ` [dpdk-dev] [PATCH v2 5/5] kvargs: fix comments style Olivier Matz
2021-09-30 8:25 ` [dpdk-dev] [PATCH v2 0/5] kvargs: promote or remove experimental api David Marchand
2021-09-30 9:57 ` Kinsella, Ray
2021-09-30 16:19 ` David Marchand
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).