/**
* 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.
*/
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
*