[PATCH] Add fc transport support to nvmetcli
jsmart2021 at gmail.com
jsmart2021 at gmail.com
Wed Apr 12 16:09:14 PDT 2017
From: James Smart <jsmart2021 at gmail.com>
Add fc.json file for example FC configuration.
Small text update for FC in examples/documentation
Signed-off-by: James Smart <james.smart at broadcom.com>
---
Documentation/nvmetcli.txt | 13 +++++++++++++
README | 6 ++++++
debian/nvmetcli.examples | 1 +
examples/fc.json | 42 ++++++++++++++++++++++++++++++++++++++++++
fc.json | 42 ++++++++++++++++++++++++++++++++++++++++++
nvmetcli | 12 ++++++------
6 files changed, 110 insertions(+), 6 deletions(-)
create mode 100644 examples/fc.json
create mode 100644 fc.json
diff --git a/Documentation/nvmetcli.txt b/Documentation/nvmetcli.txt
index 4c99512..1f381cc 100644
--- a/Documentation/nvmetcli.txt
+++ b/Documentation/nvmetcli.txt
@@ -198,6 +198,19 @@ IANA assigned default port for NVMe over Fabrics using RDMA:
...> create testnqn
--------------
+* or create an FC port. traddr is the WWNN/WWPN of the FC port.
+--------------
+...> cd /ports/
+...> create 3
+...> cd 3/
+...> set addr trtype=fc
+...> set addr adrfam=fc
+...> set addr traddr=nn-0x1000000044001123:pn-0x2000000055001123
+...> set addr trsvcid=none
+...> cd subsystems/
+...> create testnqn
+--------------
+
* Saving the NVMe Target configuration:
--------------
./nvmetcli
diff --git a/README b/README
index a3d529a..cd4bd78 100644
--- a/README
+++ b/README
@@ -33,6 +33,12 @@ after you've ensured that the IP address in rdma.json fits your setup:
./nvmetcli restore rdma.json
+Or to load the fc + no host authentication version do the following
+after you've ensured that the port traddr FC address information in
+fc.json fits your setup:
+
+ ./nvmetcli restore fc.json
+
These files can also be edited directly using your favorite editor.
Testing
diff --git a/debian/nvmetcli.examples b/debian/nvmetcli.examples
index 966124f..53ead2f 100644
--- a/debian/nvmetcli.examples
+++ b/debian/nvmetcli.examples
@@ -1,2 +1,3 @@
loop.json
rdma.json
+fc.json
diff --git a/examples/fc.json b/examples/fc.json
new file mode 100644
index 0000000..e120aef
--- /dev/null
+++ b/examples/fc.json
@@ -0,0 +1,42 @@
+{
+ "hosts": [
+ {
+ "nqn": "hostnqn"
+ }
+ ],
+ "ports": [
+ {
+ "addr": {
+ "adrfam": "fc",
+ "traddr": "nn-0x1000000044001123:pn-0x2000000055001123",
+ "treq": "not specified",
+ "trsvcid": "none",
+ "trtype": "fc"
+ },
+ "portid": 3,
+ "referrals": [],
+ "subsystems": [
+ "testnqn"
+ ]
+ }
+ ],
+ "subsystems": [
+ {
+ "allowed_hosts": [],
+ "attr": {
+ "allow_any_host": "1"
+ },
+ "namespaces": [
+ {
+ "device": {
+ "nguid": "ef90689c-6c46-d44c-89c1-4067801309a8",
+ "path": "/dev/nvme0n1"
+ },
+ "enable": 1,
+ "nsid": 1
+ }
+ ],
+ "nqn": "testnqn"
+ }
+ ]
+}
diff --git a/fc.json b/fc.json
new file mode 100644
index 0000000..e120aef
--- /dev/null
+++ b/fc.json
@@ -0,0 +1,42 @@
+{
+ "hosts": [
+ {
+ "nqn": "hostnqn"
+ }
+ ],
+ "ports": [
+ {
+ "addr": {
+ "adrfam": "fc",
+ "traddr": "nn-0x1000000044001123:pn-0x2000000055001123",
+ "treq": "not specified",
+ "trsvcid": "none",
+ "trtype": "fc"
+ },
+ "portid": 3,
+ "referrals": [],
+ "subsystems": [
+ "testnqn"
+ ]
+ }
+ ],
+ "subsystems": [
+ {
+ "allowed_hosts": [],
+ "attr": {
+ "allow_any_host": "1"
+ },
+ "namespaces": [
+ {
+ "device": {
+ "nguid": "ef90689c-6c46-d44c-89c1-4067801309a8",
+ "path": "/dev/nvme0n1"
+ },
+ "enable": 1,
+ "nsid": 1
+ }
+ ],
+ "nqn": "testnqn"
+ }
+ ]
+}
diff --git a/nvmetcli b/nvmetcli
index 9f7eacf..0ada243 100755
--- a/nvmetcli
+++ b/nvmetcli
@@ -341,11 +341,11 @@ class UIPortsNode(UINode):
class UIPortNode(UINode):
ui_desc_addr = {
- 'adrfam': ('string', 'Address Family (e.g. ipv4)'),
+ 'adrfam': ('string', 'Address Family (e.g. ipv4 or fc)'),
'treq': ('string', 'Transport Security Requirements'),
- 'traddr': ('string', 'Transport Address (e.g. IP Address)'),
+ 'traddr': ('string', 'Transport Address (e.g. IP Address or FC wwnn:wwpn)'),
'trsvcid': ('string', 'Transport Service ID (e.g. IP Port)'),
- 'trtype': ('string', 'Transport Type (e.g. rdma or loop)'),
+ 'trtype': ('string', 'Transport Type (e.g. rdma or loop or fc)'),
}
def __init__(self, parent, cfnode):
@@ -455,11 +455,11 @@ class UIReferralsNode(UINode):
class UIReferralNode(UINode):
ui_desc_addr = {
- 'adrfam': ('string', 'Address Family (e.g. ipv4)'),
+ 'adrfam': ('string', 'Address Family (e.g. ipv4 or fc)'),
'treq': ('string', 'Transport Security Requirements'),
- 'traddr': ('string', 'Transport Address (e.g. IP Address)'),
+ 'traddr': ('string', 'Transport Address (e.g. IP Address or FC wwnn:wwpn)'),
'trsvcid': ('string', 'Transport Service ID (e.g. IP Port)'),
- 'trtype': ('string', 'Transport Type (e.g. rdma or loop)'),
+ 'trtype': ('string', 'Transport Type (e.g. rdma or loop or fc)'),
'portid': ('number', 'Port identifier'),
}
--
2.9.3
More information about the Linux-nvme
mailing list