Skip to content

Add subsystem add_network/del_network cmds#1690

Merged
VallariAg merged 1 commit intoceph:develfrom
VallariAg:auto-listener-add-del
Jan 12, 2026
Merged

Add subsystem add_network/del_network cmds#1690
VallariAg merged 1 commit intoceph:develfrom
VallariAg:auto-listener-add-del

Conversation

@VallariAg
Copy link
Member

@VallariAg VallariAg commented Dec 24, 2025

Add 'subsystem add_network' cmd to add new subnet
of IPs as auto-listeners. And 'subsystem del_network' to remove a subnet of auto-listener IPs.

Syntax:
"subsystem add_network -n --network-mask "
"subsystem del_network -n --network-mask "

USAGE:

subsystem creation with 2 network_mask:

[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:default-listeners-edit-14 --server-address x.x.x.x subsystem add -n nqn.2016-06.io.spdk:cnode40 --network-mask x.x.x.0/24 y.y.y.0/24
Adding subsystem nqn.2016-06.io.spdk:cnode40.mygroup1: Successful
[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:default-listeners-edit-14 --server-address x.x.x.x listener list -n nqn.2016-06.io.spdk:cnode40.mygroup1
Listeners for nqn.2016-06.io.spdk:cnode40.mygroup1:
╒═══════════════════════════════╤═════════════╤══════════════════╤═══════════════════╤══════════╤══════════╤══════════╕
│ Host                          │ Transport   │ Address Family   │ Address           │ Secure   │ Active   │ Manual   │
╞═══════════════════════════════╪═════════════╪══════════════════╪═══════════════════╪══════════╪══════════╪══════════╡
│ vallari-vallari-cluster-node1 │ TCP         │ IPv4             │ x.x.x.x:4420      │ No       │ Yes      │ No       │
├───────────────────────────────┼─────────────┼──────────────────┼───────────────────┼──────────┼──────────┼──────────┤
│ vallari-vallari-cluster-node1 │ TCP         │ IPv4             │ y.y.y.y:4420      │ No       │ Yes      │ No       │
├───────────────────────────────┼─────────────┼──────────────────┼───────────────────┼──────────┼──────────┼──────────┤
│ vallari-vallari-cluster-node2 │ TCP         │ IPv4             │ x.x.x.a:4420      │ No       │ No       │ No       │
├───────────────────────────────┼─────────────┼──────────────────┼───────────────────┼──────────┼──────────┼──────────┤
│ vallari-vallari-cluster-node3 │ TCP         │ IPv4             │ x.x.x.b:4420.     │ No       │ No       │ No       │
╘═══════════════════════════════╧═════════════╧══════════════════╧═══════════════════╧══════════╧══════════╧══════════╛

[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:auto-listener-add-del-test-5 --server-address x.x.x.x  subsystem list -n nqn.2016-06.io.spdk:cnode40.mygroup1
Subsystem nqn.2016-06.io.spdk:cnode40.mygroup1:
╒═══════════╤══════════════════════════════════════╤════════════════════╤══════════════════╤═════════════╤══════════════╤════════════╤══════════╤════════════════╕
│ Subtype   │ NQN                                  │ Serial             │ Controller IDs   │   Namespace │          Max │ Allow      │ DHCHAP   │ Network        │
│           │                                      │ Number             │                  │       Count │   Namespaces │ Any Host   │ Key      │ Mask           │
╞═══════════╪══════════════════════════════════════╪════════════════════╪══════════════════╪═════════════╪══════════════╪════════════╪══════════╪════════════════╡
│ NVMe      │ nqn.2016-06.io.spdk:cnode40.mygroup1 │ Ceph47620438499947 │ 1-2040           │           0 │          512 │ No         │ No       │ x.x.x.0/24    │
│           │                                      │                    │                  │             │              │            │          │ y.y.y.0/24    │
╘═══════════╧══════════════════════════════════════╧════════════════════╧══════════════════╧═════════════╧══════════════╧════════════╧══════════╧════════════════╛

subsystem del_network:

[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:default-listeners-edit-14 --server-address x.x.x.x subsystem del_network -n nqn.2016-06.io.spdk:cnode40.mygroup1 --network-mask x.x.x.0/24
Network mask x.x.x.0/24 deleted for subsystem nqn.2016-06.io.spdk:cnode40.mygroup1: Successful
[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:default-listeners-edit-14 --server-address x.x.x.x listener list -n nqn.2016-06.io.spdk:cnode40.mygroup1
Listeners for nqn.2016-06.io.spdk:cnode40.mygroup1:
╒═══════════════════════════════╤═════════════╤══════════════════╤══════════════════╤══════════╤══════════╤══════════╕
│ Host                          │ Transport   │ Address Family   │ Address          │ Secure   │ Active   │ Manual   │
╞═══════════════════════════════╪═════════════╪══════════════════╪══════════════════╪══════════╪══════════╪══════════╡
│ vallari-vallari-cluster-node1 │ TCP         │ IPv4             │ y.y.y.y:4420     │ No       │ Yes      │ No       │
╘═══════════════════════════════╧═════════════╧══════════════════╧══════════════════╧══════════╧══════════╧══════════╛

[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:auto-listener-add-del-test-5 --server-address x.x.x.x  subsystem list -n nqn.2016-06.io.spdk:cnode40.mygroup1
Subsystem nqn.2016-06.io.spdk:cnode40.mygroup1:
╒═══════════╤═════════════════════════════════════╤════════════════════╤══════════════════╤═════════════╤══════════════╤════════════╤══════════╤════════════════╕
│ Subtype   │ NQN                                 │ Serial             │ Controller IDs   │   Namespace │          Max │ Allow      │ DHCHAP   │ Network        │
│           │                                     │ Number             │                  │       Count │   Namespaces │ Any Host   │ Key      │ Mask           │
╞═══════════╪═════════════════════════════════════╪════════════════════╪══════════════════╪═════════════╪══════════════╪════════════╪══════════╪════════════════╡
│ NVMe      │ nqn.2016-06.io.spdk:cnode40.mygroup1 │ Ceph63109618488678 │ 1-2040           │           0 │          512 │ No         │ No       │ y.y.y.0/24    │
╘═══════════╧═════════════════════════════════════╧════════════════════╧══════════════════╧═════════════╧══════════════╧════════════╧══════════╧════════════════╛

subsystem add_network:

[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:default-listeners-edit-14 --server-address x.x.x.x subsystem add_network -n nqn.2016-06.io.spdk:cnode40.mygroup1 --network-mask x.x.x.0/24
Network mask x.x.x.0/24 added to subsystem nqn.2016-06.io.spdk:cnode40.mygroup1: Successful
[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:default-listeners-edit-14 --server-address x.x.x.x listener list -n nqn.2016-06.io.spdk:cnode40.mygroup1
Listeners for nqn.2016-06.io.spdk:cnode40.mygroup1:
╒═══════════════════════════════╤═════════════╤══════════════════╤═══════════════════╤══════════╤══════════╤══════════╕
│ Host                          │ Transport   │ Address Family   │ Address           │ Secure   │ Active   │ Manual   │
╞═══════════════════════════════╪═════════════╪══════════════════╪═══════════════════╪══════════╪══════════╪══════════╡
│ vallari-vallari-cluster-node1 │ TCP         │ IPv4             │ x.x.x.x:4420      │ No       │ Yes      │ No       │
├───────────────────────────────┼─────────────┼──────────────────┼───────────────────┼──────────┼──────────┼──────────┤
│ vallari-vallari-cluster-node1 │ TCP         │ IPv4             │ y.y.y.y:4420      │ No       │ Yes      │ No       │
├───────────────────────────────┼─────────────┼──────────────────┼───────────────────┼──────────┼──────────┼──────────┤
│ vallari-vallari-cluster-node2 │ TCP         │ IPv4             │ x.x.x.a:4420      │ No       │ No       │ No       │
├───────────────────────────────┼─────────────┼──────────────────┼───────────────────┼──────────┼──────────┼──────────┤
│ vallari-vallari-cluster-node3 │ TCP         │ IPv4             │ x.x.x.b:4420      │ No       │ No       │ No       │
╘═══════════════════════════════╧═════════════╧══════════════════╧═══════════════════╧══════════╧══════════╧══════════╛

[root@vallari-vallari-cluster-node1 ~]# docker run -it quay.io/vallari/nvmeof-cli:auto-listener-add-del-test-5 --server-address x.x.x.x  subsystem list -n nqn.2016-06.io.spdk:cnode40.mygroup1
Subsystem nqn.2016-06.io.spdk:cnode40.mygroup1:
╒═══════════╤══════════════════════════════════════╤════════════════════╤══════════════════╤═════════════╤══════════════╤════════════╤══════════╤════════════════╕
│ Subtype   │ NQN                                  │ Serial             │ Controller IDs   │   Namespace │          Max │ Allow      │ DHCHAP   │ Network        │
│           │                                      │ Number             │                  │       Count │   Namespaces │ Any Host   │ Key      │ Mask           │
╞═══════════╪══════════════════════════════════════╪════════════════════╪══════════════════╪═════════════╪══════════════╪════════════╪══════════╪════════════════╡
│ NVMe      │ nqn.2016-06.io.spdk:cnode40.mygroup1 │ Ceph47620438499947 │ 1-2040           │           0 │          512 │ No         │ No       │ x.x.x.0/24    │
│           │                                      │                    │                  │             │              │            │          │ y.y.y.0/24    │
╘═══════════╧══════════════════════════════════════╧════════════════════╧══════════════════╧═════════════╧══════════════╧════════════╧══════════╧════════════════╛


@github-project-automation github-project-automation bot moved this to 🆕 New in NVMe-oF Dec 24, 2025
@VallariAg VallariAg force-pushed the auto-listener-add-del branch from 5038917 to 21034b3 Compare January 6, 2026 08:36
@VallariAg VallariAg requested a review from gbregman January 7, 2026 08:49
@VallariAg VallariAg force-pushed the auto-listener-add-del branch from 21034b3 to b24b24c Compare January 7, 2026 08:51
@github-project-automation github-project-automation bot moved this from 🆕 New to ♻ Changes requested in NVMe-oF Jan 7, 2026
@VallariAg VallariAg force-pushed the auto-listener-add-del branch from b24b24c to a7ec96a Compare January 9, 2026 11:22
@VallariAg VallariAg requested a review from gbregman January 9, 2026 11:25
@github-project-automation github-project-automation bot moved this from ♻ Changes requested to 👍 Ready to merge in NVMe-oF Jan 11, 2026
@VallariAg VallariAg force-pushed the auto-listener-add-del branch from a7ec96a to 11e6efa Compare January 12, 2026 06:10
@VallariAg
Copy link
Member Author

Rebased with devel and squashed 4 commits into 1 commit.

Add 'subsystem add_network' cmd to add new subnet
of IPs as auto-listeners. And 'subsystem del_network' to
remove a subnet of auto-listener IPs.

Syntax:
"subsystem add -n <nqn> --network-mask <subnet> <subnet2>"
"subsystem add_network -n <nqn> --network-mask <subnet3>"
"subsystem del_network -n <nqn> --network-mask <subnet3>"

Also, add "Network Mask" in "subsystem list" output.

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
@VallariAg VallariAg force-pushed the auto-listener-add-del branch from 11e6efa to 16c69db Compare January 12, 2026 07:24
@VallariAg
Copy link
Member Author

VallariAg commented Jan 12, 2026

Made a minor change, so the commands do not fail with error if

  1. a listener already exists during "add_network"
  2. a listener already did not exist during "del_network"

This handles case if a subsystem has 2 networks and there is an IP which is common between them.

Diff: https://github.com/ceph/ceph-nvmeof/compare/11e6efac5d0afaf52d752c4c356bb8cea025282e..16c69dbb24991abd59738e05082c148544a83050

@VallariAg VallariAg merged commit 8e40d7c into ceph:devel Jan 12, 2026
156 of 157 checks passed
@github-project-automation github-project-automation bot moved this from 👍 Ready to merge to ✅ Done in NVMe-oF Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants