From: Marc Sune <marc.sune@bisdn.de>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH 1/4] kni: add function to query the name of a kni object
Date: Wed, 27 May 2015 16:15:49 +0200 [thread overview]
Message-ID: <5565D195.9040701@bisdn.de> (raw)
In-Reply-To: <20150527135533.GB10480@bricha3-MOBL3>
On 27/05/15 15:55, Bruce Richardson wrote:
> On Wed, May 27, 2015 at 03:52:34PM +0200, Marc Sune wrote:
>>
>> On 27/05/15 15:47, Bruce Richardson wrote:
>>> When a KNI object is created, a name is assigned to it which is stored
>>> internally. There is also an API function to look up a KNI object by
>>> name, but there is no API to query the current name of an existing
>>> KNI object. This patch adds just such an API.
>>>
>>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
>>> ---
>>> lib/librte_kni/rte_kni.c | 6 ++++++
>>> lib/librte_kni/rte_kni.h | 10 ++++++++++
>>> lib/librte_kni/rte_kni_version.map | 1 +
>>> 3 files changed, 17 insertions(+)
>>>
>>> diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c
>>> index 4e70fa0..c5a0089 100644
>>> --- a/lib/librte_kni/rte_kni.c
>>> +++ b/lib/librte_kni/rte_kni.c
>>> @@ -674,6 +674,12 @@ rte_kni_get(const char *name)
>>> return NULL;
>>> }
>>> +const char *
>>> +rte_kni_get_name(const struct rte_kni *kni)
>>> +{
>>> + return kni->name;
>>> +}
>> Since a pointer to the kni context (struct rte_kni) is exposed to the user
>> (rte_kni_get() and rte_kni_alloc ()), and the field is directly in the
>> struct, is this API call really necessary? I would only see this necessary
>> if the API would only expose a handle, like a port_id for ethdev
>>
>> Marc
> The structure definition is in rte_kni.c, not in the header file, so applications
> can't read the name directly. In other words, the create API just exposes a handle.
> [The structure in the header is the conf structure, not the full kni struct]
Ops, you are right. I overlooked that. What about:
extern void rte_kni_get_config(const struct rte_kni *kni, struct
rte_kni_conf* conf);
which fills in (copies) the fields of conf would allow to recover the
original configuration, including the name? It is closer
rte_eth_dev_info_get (unfortunately rte_kni_info_get is taken by the
deprecated API), and would work if we add more params to rte_kni_conf.
Thanks
marc
> /Bruce
>
>>> +
>>> /*
>>> * It is deprecated and just for backward compatibility.
>>> */
>>> diff --git a/lib/librte_kni/rte_kni.h b/lib/librte_kni/rte_kni.h
>>> index 44240fe..0c74251 100644
>>> --- a/lib/librte_kni/rte_kni.h
>>> +++ b/lib/librte_kni/rte_kni.h
>>> @@ -248,6 +248,16 @@ extern uint8_t rte_kni_get_port_id(struct rte_kni *kni) \
>>> extern struct rte_kni *rte_kni_get(const char *name);
>>> /**
>>> + * Get the name given to a KNI device
>>> + *
>>> + * @param kni
>>> + * The KNI instance to query
>>> + * @return
>>> + * The pointer to the KNI name
>>> + */
>>> +extern const char *rte_kni_get_name(const struct rte_kni *kni);
>>> +
>>> +/**
>>> * Get the KNI context of the specific port.
>>> *
>>> * Note: It is deprecated and just for backward compatibility.
>>> diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
>>> index b0bbf4d..e5e4e1b 100644
>>> --- a/lib/librte_kni/rte_kni_version.map
>>> +++ b/lib/librte_kni/rte_kni_version.map
>>> @@ -6,6 +6,7 @@ DPDK_2.0 {
>>> rte_kni_create;
>>> rte_kni_get;
>>> rte_kni_get_port_id;
>>> + rte_kni_get_name;
>>> rte_kni_handle_request;
>>> rte_kni_info_get;
>>> rte_kni_init;
next prev parent reply other threads:[~2015-05-27 14:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-27 13:47 [PATCH 1/4] kni: add function to query the name of a kni object Bruce Richardson
2015-05-27 13:51 ` Bruce Richardson
2015-05-27 13:52 ` Marc Sune
2015-05-27 13:55 ` Bruce Richardson
2015-05-27 14:15 ` Marc Sune [this message]
2015-05-27 15:36 ` Bruce Richardson
2015-06-15 1:04 ` Zhang, Helin
2015-06-16 14:17 ` Thomas Monjalon
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=5565D195.9040701@bisdn.de \
--to=marc.sune@bisdn.de \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.