Thank you all for the responses, that's really helpful. I think we can use the way as
Jim suggested.
Thanks
-Niu
On 2020/10/27, 3:12 AM, "Harris, James R" <james.r.harris(a)intel.com>
wrote:
Hi Niu,
You can use spdk_bdev_dump_json_info() to get module-specific information related to a
given bdev. If the bdev is an NVMe namespace, this will include the transport ID.
I've prepared a patch that shows how to use this API:
https://review.spdk.io/gerrit/c/spdk/spdk/+/4881
In the callback, you can try manually parsing the string data to extract the
"pci_address" value. There is also the spdk_json_parse() API which is probably
a lot more code.
-Jim
On 10/26/20, 9:41 AM, "Andrey Kuzmin" <andrey.v.kuzmin(a)gmail.com>
wrote:
There's no readily available way to get transoprt id for nvme, but
respective call may be added to nvme_ctrlr.c. One could the call it with
bdev_nvme provided controller as an argument.
Regards,
Andrey
On Mon, Oct 26, 2020, 19:04 Luse, Paul E <paul.e.luse(a)intel.com> wrote:
Hi Yawei,
Generically the bdev layer won’t have anything like this but each bdev
module supports its own set of RPCs that are specific to the bdev. Take a
look a the nvme bdev RPC rpc_dump_nvme_controller_info() and see if it has
what you need. New RPC’s can also be added as makes sense for various use
cases (depending on what your inputs are desired outputs are)
Hope that helps….
Thx
Paul
From: Niu, Yawei <yawei.niu(a)intel.com>
Date: Monday, October 26, 2020 at 12:09 AM
To: Storage Performance Development Kit <spdk(a)lists.01.org>
Subject: [SPDK] How to get transport ID from spdk_bdev
Hi,
Is there any way to get transport ID (and ns id) of an existing spdk_bdev?
I think that could be useful for the applications built upon bdev layer and
want to know the transport ID and namespace ID where the bdev is located,
but I failed to find such kind of exported interfaces.
I’m wondering if this controller information is deliberately being hidden
behind bdev layer? In our use case, we just want to get the association of
bdev and ctrlr/ns for configuration management purpose.
Thanks
-Niu
_______________________________________________
SPDK mailing list -- spdk(a)lists.01.org
To unsubscribe send an email to spdk-leave(a)lists.01.org
_______________________________________________
SPDK mailing list -- spdk(a)lists.01.org
To unsubscribe send an email to spdk-leave(a)lists.01.org
_______________________________________________
SPDK mailing list -- spdk(a)lists.01.org
To unsubscribe send an email to spdk-leave(a)lists.01.org
_______________________________________________
SPDK mailing list -- spdk(a)lists.01.org
To unsubscribe send an email to spdk-leave(a)lists.01.org