From: "Christoph Böhmwalder" <christoph.boehmwalder@linbit.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: drbd-dev@lists.linbit.com, linux-kernel@vger.kernel.org,
"Lars Ellenberg" <lars.ellenberg@linbit.com>,
"Philipp Reisner" <philipp.reisner@linbit.com>,
linux-block@vger.kernel.org,
"Donald Hunter" <donald.hunter@gmail.com>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
netdev@vger.kernel.org,
"Christoph Böhmwalder" <christoph.boehmwalder@linbit.com>
Subject: [PATCH 3/4] drbd: add YNL genetlink specification
Date: Tue, 7 Apr 2026 19:33:55 +0200 [thread overview]
Message-ID: <20260407173356.873887-4-christoph.boehmwalder@linbit.com> (raw)
In-Reply-To: <20260407173356.873887-1-christoph.boehmwalder@linbit.com>
Add a YNL-conformant YAML spec for the DRBD genetlink interface.
This uses the genetlink-legacy schema since DRBD has a fixed protocol
header (drbd_genlmsghdr) and pre-existing conventions that userspace
depends on.
s32 fields (meta-dev-idx, resync-after) use nla-policy-type: u32 to
preserve wire compatibility with existing userspace; the original spec
predates kernel NLA_S32 support.
Signed-off-by: Christoph Böhmwalder <christoph.boehmwalder@linbit.com>
---
Documentation/netlink/specs/drbd.yaml | 1109 +++++++++++++++++++++++++
include/uapi/linux/drbd.h | 3 +
2 files changed, 1112 insertions(+)
create mode 100644 Documentation/netlink/specs/drbd.yaml
diff --git a/Documentation/netlink/specs/drbd.yaml b/Documentation/netlink/specs/drbd.yaml
new file mode 100644
index 000000000000..d5de2a4506e0
--- /dev/null
+++ b/Documentation/netlink/specs/drbd.yaml
@@ -0,0 +1,1109 @@
+# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
+name: drbd
+protocol: genetlink-legacy
+uapi-header: linux/drbd_genl.h
+kernel-family:
+ emit-structs: true
+doc: |
+ DRBD genetlink protocol for configuring and monitoring replication resources,
+ devices, and connections.
+
+definitions:
+ - name: shared-secret-max
+ type: const
+ header: linux/drbd.h
+ - name: drbd-cpu-mask-size
+ type: const
+ header: linux/drbd.h
+ - name: drbd-nl-uuids-size
+ type: const
+ header: linux/drbd.h
+ - name: drbd-nl-history-uuids-size
+ type: const
+ header: linux/drbd.h
+ - name: drbd-minor-count-max
+ type: const
+ header: linux/drbd_limits.h
+
+attribute-sets:
+ -
+ name: drbd
+ name-prefix: drbd-nla-
+ doc: Top-level DRBD attribute space (all TLAs are nested).
+ attributes:
+ - name: cfg-reply
+ type: nest
+ value: 1
+ nested-attributes: drbd-cfg-reply
+ - name: cfg-context
+ type: nest
+ value: 2
+ nested-attributes: drbd-cfg-context
+ - name: disk-conf
+ type: nest
+ value: 3
+ nested-attributes: disk-conf
+ - name: resource-opts
+ type: nest
+ value: 4
+ nested-attributes: res-opts
+ - name: net-conf
+ type: nest
+ value: 5
+ nested-attributes: net-conf
+ - name: set-role-parms
+ type: nest
+ value: 6
+ nested-attributes: set-role-parms
+ - name: resize-parms
+ type: nest
+ value: 7
+ nested-attributes: resize-parms
+ - name: state-info
+ type: nest
+ value: 8
+ nested-attributes: state-info
+ - name: start-ov-parms
+ type: nest
+ value: 9
+ nested-attributes: start-ov-parms
+ - name: new-c-uuid-parms
+ type: nest
+ value: 10
+ nested-attributes: new-c-uuid-parms
+ - name: timeout-parms
+ type: nest
+ value: 11
+ nested-attributes: timeout-parms
+ - name: disconnect-parms
+ type: nest
+ value: 12
+ nested-attributes: disconnect-parms
+ - name: detach-parms
+ type: nest
+ value: 13
+ nested-attributes: detach-parms
+ - name: resource-info
+ type: nest
+ value: 15
+ nested-attributes: resource-info
+ - name: device-info
+ type: nest
+ value: 16
+ nested-attributes: device-info
+ - name: connection-info
+ type: nest
+ value: 17
+ nested-attributes: connection-info
+ - name: peer-device-info
+ type: nest
+ value: 18
+ nested-attributes: peer-device-info
+ - name: resource-statistics
+ type: nest
+ value: 19
+ nested-attributes: resource-statistics
+ - name: device-statistics
+ type: nest
+ value: 20
+ nested-attributes: device-statistics
+ - name: connection-statistics
+ type: nest
+ value: 21
+ nested-attributes: connection-statistics
+ - name: peer-device-statistics
+ type: nest
+ value: 22
+ nested-attributes: peer-device-statistics
+ - name: notification-header
+ type: nest
+ value: 23
+ nested-attributes: drbd-notification-header
+ - name: helper
+ type: nest
+ value: 24
+ nested-attributes: drbd-helper-info
+ -
+ name: drbd-cfg-reply
+ attributes:
+ - name: info-text
+ type: string
+ value: 1
+ -
+ name: drbd-cfg-context
+ attributes:
+ - name: ctx-volume
+ type: u32
+ value: 1
+ - name: ctx-resource-name
+ type: string
+ value: 2
+ checks:
+ max-len: 128
+ - name: ctx-my-addr
+ type: binary
+ value: 3
+ checks:
+ max-len: 128
+ - name: ctx-peer-addr
+ type: binary
+ value: 4
+ checks:
+ max-len: 128
+ -
+ name: disk-conf
+ attributes:
+ - name: backing-dev
+ type: string
+ value: 1
+ required: true
+ checks:
+ max-len: 128
+ - name: meta-dev
+ type: string
+ value: 2
+ required: true
+ checks:
+ max-len: 128
+ - name: meta-dev-idx
+ type: s32
+ value: 3
+ required: true
+ nla-policy-type: u32
+ - name: disk-size
+ type: u64
+ value: 4
+ - name: max-bio-bvecs
+ type: u32
+ value: 5
+ - name: on-io-error
+ type: u32
+ value: 6
+ default: DRBD_ON_IO_ERROR_DEF
+ - name: fencing
+ type: u32
+ value: 7
+ default: DRBD_FENCING_DEF
+ - name: resync-rate
+ type: u32
+ value: 8
+ default: DRBD_RESYNC_RATE_DEF
+ - name: resync-after
+ type: s32
+ value: 9
+ default: DRBD_MINOR_NUMBER_DEF
+ nla-policy-type: u32
+ - name: al-extents
+ type: u32
+ value: 10
+ default: DRBD_AL_EXTENTS_DEF
+ - name: c-plan-ahead
+ type: u32
+ value: 11
+ default: DRBD_C_PLAN_AHEAD_DEF
+ - name: c-delay-target
+ type: u32
+ value: 12
+ default: DRBD_C_DELAY_TARGET_DEF
+ - name: c-fill-target
+ type: u32
+ value: 13
+ default: DRBD_C_FILL_TARGET_DEF
+ - name: c-max-rate
+ type: u32
+ value: 14
+ default: DRBD_C_MAX_RATE_DEF
+ - name: c-min-rate
+ type: u32
+ value: 15
+ default: DRBD_C_MIN_RATE_DEF
+ - name: disk-barrier
+ type: u8
+ value: 16
+ default: DRBD_DISK_BARRIER_DEF
+ - name: disk-flushes
+ type: u8
+ value: 17
+ default: DRBD_DISK_FLUSHES_DEF
+ - name: disk-drain
+ type: u8
+ value: 18
+ default: DRBD_DISK_DRAIN_DEF
+ - name: md-flushes
+ type: u8
+ value: 19
+ default: DRBD_MD_FLUSHES_DEF
+ - name: disk-timeout
+ type: u32
+ value: 20
+ default: DRBD_DISK_TIMEOUT_DEF
+ - name: read-balancing
+ type: u32
+ value: 21
+ default: DRBD_READ_BALANCING_DEF
+ - name: al-updates
+ type: u8
+ value: 23
+ default: DRBD_AL_UPDATES_DEF
+ - name: discard-zeroes-if-aligned
+ type: u8
+ value: 24
+ default: DRBD_DISCARD_ZEROES_IF_ALIGNED_DEF
+ - name: rs-discard-granularity
+ type: u32
+ value: 25
+ default: DRBD_RS_DISCARD_GRANULARITY_DEF
+ - name: disable-write-same
+ type: u8
+ value: 26
+ default: DRBD_DISABLE_WRITE_SAME_DEF
+ -
+ name: res-opts
+ attributes:
+ - name: cpu-mask
+ type: string
+ value: 1
+ default: ""
+ checks:
+ max-len: DRBD_CPU_MASK_SIZE
+ - name: on-no-data
+ type: u32
+ value: 2
+ default: DRBD_ON_NO_DATA_DEF
+ -
+ name: net-conf
+ attributes:
+ - name: shared-secret
+ type: string
+ value: 1
+ default: ""
+ checks:
+ max-len: SHARED_SECRET_MAX
+ - name: cram-hmac-alg
+ type: string
+ value: 2
+ default: ""
+ checks:
+ max-len: SHARED_SECRET_MAX
+ - name: integrity-alg
+ type: string
+ value: 3
+ default: ""
+ checks:
+ max-len: SHARED_SECRET_MAX
+ - name: verify-alg
+ type: string
+ value: 4
+ default: ""
+ checks:
+ max-len: SHARED_SECRET_MAX
+ - name: csums-alg
+ type: string
+ value: 5
+ default: ""
+ checks:
+ max-len: SHARED_SECRET_MAX
+ - name: wire-protocol
+ type: u32
+ value: 6
+ default: DRBD_PROTOCOL_DEF
+ - name: connect-int
+ type: u32
+ value: 7
+ default: DRBD_CONNECT_INT_DEF
+ - name: timeout
+ type: u32
+ value: 8
+ default: DRBD_TIMEOUT_DEF
+ - name: ping-int
+ type: u32
+ value: 9
+ default: DRBD_PING_INT_DEF
+ - name: ping-timeo
+ type: u32
+ value: 10
+ default: DRBD_PING_TIMEO_DEF
+ - name: sndbuf-size
+ type: u32
+ value: 11
+ default: DRBD_SNDBUF_SIZE_DEF
+ - name: rcvbuf-size
+ type: u32
+ value: 12
+ default: DRBD_RCVBUF_SIZE_DEF
+ - name: ko-count
+ type: u32
+ value: 13
+ default: DRBD_KO_COUNT_DEF
+ - name: max-buffers
+ type: u32
+ value: 14
+ default: DRBD_MAX_BUFFERS_DEF
+ - name: max-epoch-size
+ type: u32
+ value: 15
+ default: DRBD_MAX_EPOCH_SIZE_DEF
+ - name: unplug-watermark
+ type: u32
+ value: 16
+ default: DRBD_UNPLUG_WATERMARK_DEF
+ - name: after-sb-0p
+ type: u32
+ value: 17
+ default: DRBD_AFTER_SB_0P_DEF
+ - name: after-sb-1p
+ type: u32
+ value: 18
+ default: DRBD_AFTER_SB_1P_DEF
+ - name: after-sb-2p
+ type: u32
+ value: 19
+ default: DRBD_AFTER_SB_2P_DEF
+ - name: rr-conflict
+ type: u32
+ value: 20
+ default: DRBD_RR_CONFLICT_DEF
+ - name: on-congestion
+ type: u32
+ value: 21
+ default: DRBD_ON_CONGESTION_DEF
+ - name: cong-fill
+ type: u32
+ value: 22
+ default: DRBD_CONG_FILL_DEF
+ - name: cong-extents
+ type: u32
+ value: 23
+ default: DRBD_CONG_EXTENTS_DEF
+ - name: two-primaries
+ type: u8
+ value: 24
+ default: DRBD_ALLOW_TWO_PRIMARIES_DEF
+ - name: discard-my-data
+ type: u8
+ value: 25
+ - name: tcp-cork
+ type: u8
+ value: 26
+ default: DRBD_TCP_CORK_DEF
+ - name: always-asbp
+ type: u8
+ value: 27
+ default: DRBD_ALWAYS_ASBP_DEF
+ - name: tentative
+ type: u8
+ value: 28
+ - name: use-rle
+ type: u8
+ value: 29
+ default: DRBD_USE_RLE_DEF
+ - name: csums-after-crash-only
+ type: u8
+ value: 33
+ default: DRBD_CSUMS_AFTER_CRASH_ONLY_DEF
+ - name: sock-check-timeo
+ type: u32
+ value: 34
+ default: DRBD_SOCKET_CHECK_TIMEO_DEF
+ -
+ name: set-role-parms
+ attributes:
+ - name: assume-uptodate
+ type: u8
+ value: 1
+ -
+ name: resize-parms
+ attributes:
+ - name: resize-size
+ type: u64
+ value: 1
+ - name: resize-force
+ type: u8
+ value: 2
+ - name: no-resync
+ type: u8
+ value: 3
+ - name: al-stripes
+ type: u32
+ value: 4
+ default: DRBD_AL_STRIPES_DEF
+ - name: al-stripe-size
+ type: u32
+ value: 5
+ default: DRBD_AL_STRIPE_SIZE_DEF
+ -
+ name: state-info
+ attributes:
+ - name: sib-reason
+ type: u32
+ value: 1
+ - name: current-state
+ type: u32
+ value: 2
+ required: true
+ - name: capacity
+ type: u64
+ value: 3
+ - name: ed-uuid
+ type: u64
+ value: 4
+ - name: prev-state
+ type: u32
+ value: 5
+ - name: new-state
+ type: u32
+ value: 6
+ - name: uuids
+ type: binary
+ value: 7
+ checks:
+ max-len: DRBD_NL_UUIDS_SIZE
+ - name: disk-flags
+ type: u32
+ value: 8
+ - name: bits-total
+ type: u64
+ value: 9
+ - name: bits-oos
+ type: u64
+ value: 10
+ - name: bits-rs-total
+ type: u64
+ value: 11
+ - name: bits-rs-failed
+ type: u64
+ value: 12
+ - name: helper
+ type: string
+ value: 13
+ checks:
+ max-len: 32
+ - name: helper-exit-code
+ type: u32
+ value: 14
+ - name: send-cnt
+ type: u64
+ value: 15
+ - name: recv-cnt
+ type: u64
+ value: 16
+ - name: read-cnt
+ type: u64
+ value: 17
+ - name: writ-cnt
+ type: u64
+ value: 18
+ - name: al-writ-cnt
+ type: u64
+ value: 19
+ - name: bm-writ-cnt
+ type: u64
+ value: 20
+ - name: ap-bio-cnt
+ type: u32
+ value: 21
+ - name: ap-pending-cnt
+ type: u32
+ value: 22
+ - name: rs-pending-cnt
+ type: u32
+ value: 23
+ -
+ name: start-ov-parms
+ attributes:
+ - name: ov-start-sector
+ type: u64
+ value: 1
+ - name: ov-stop-sector
+ type: u64
+ value: 2
+ -
+ name: new-c-uuid-parms
+ attributes:
+ - name: clear-bm
+ type: u8
+ value: 1
+ -
+ name: timeout-parms
+ attributes:
+ - name: timeout-type
+ type: u32
+ value: 1
+ required: true
+ -
+ name: disconnect-parms
+ attributes:
+ - name: force-disconnect
+ type: u8
+ value: 1
+ -
+ name: detach-parms
+ attributes:
+ - name: force-detach
+ type: u8
+ value: 1
+ -
+ name: resource-info
+ attributes:
+ - name: res-role
+ type: u32
+ value: 1
+ - name: res-susp
+ type: u8
+ value: 2
+ - name: res-susp-nod
+ type: u8
+ value: 3
+ - name: res-susp-fen
+ type: u8
+ value: 4
+ -
+ name: device-info
+ attributes:
+ - name: dev-disk-state
+ type: u32
+ value: 1
+ -
+ name: connection-info
+ attributes:
+ - name: conn-connection-state
+ type: u32
+ value: 1
+ - name: conn-role
+ type: u32
+ value: 2
+ -
+ name: peer-device-info
+ attributes:
+ - name: peer-repl-state
+ type: u32
+ value: 1
+ - name: peer-disk-state
+ type: u32
+ value: 2
+ - name: peer-resync-susp-user
+ type: u32
+ value: 3
+ - name: peer-resync-susp-peer
+ type: u32
+ value: 4
+ - name: peer-resync-susp-dependency
+ type: u32
+ value: 5
+ -
+ name: resource-statistics
+ attributes:
+ - name: res-stat-write-ordering
+ type: u32
+ value: 1
+ -
+ name: device-statistics
+ attributes:
+ - name: dev-size
+ type: u64
+ value: 1
+ - name: dev-read
+ type: u64
+ value: 2
+ - name: dev-write
+ type: u64
+ value: 3
+ - name: dev-al-writes
+ type: u64
+ value: 4
+ - name: dev-bm-writes
+ type: u64
+ value: 5
+ - name: dev-upper-pending
+ type: u32
+ value: 6
+ - name: dev-lower-pending
+ type: u32
+ value: 7
+ - name: dev-upper-blocked
+ type: u8
+ value: 8
+ - name: dev-lower-blocked
+ type: u8
+ value: 9
+ - name: dev-al-suspended
+ type: u8
+ value: 10
+ - name: dev-exposed-data-uuid
+ type: u64
+ value: 11
+ - name: dev-current-uuid
+ type: u64
+ value: 12
+ - name: dev-disk-flags
+ type: u32
+ value: 13
+ - name: history-uuids
+ type: binary
+ value: 14
+ checks:
+ max-len: DRBD_NL_HISTORY_UUIDS_SIZE
+ -
+ name: connection-statistics
+ attributes:
+ - name: conn-congested
+ type: u8
+ value: 1
+ -
+ name: peer-device-statistics
+ attributes:
+ - name: peer-dev-received
+ type: u64
+ value: 1
+ - name: peer-dev-sent
+ type: u64
+ value: 2
+ - name: peer-dev-pending
+ type: u32
+ value: 3
+ - name: peer-dev-unacked
+ type: u32
+ value: 4
+ - name: peer-dev-out-of-sync
+ type: u64
+ value: 5
+ - name: peer-dev-resync-failed
+ type: u64
+ value: 6
+ - name: peer-dev-bitmap-uuid
+ type: u64
+ value: 7
+ - name: peer-dev-flags
+ type: u32
+ value: 9
+ -
+ name: drbd-notification-header
+ attributes:
+ - name: nh-type
+ type: u32
+ value: 1
+ -
+ name: drbd-helper-info
+ attributes:
+ - name: helper-name
+ type: string
+ value: 1
+ checks:
+ max-len: 32
+ - name: helper-status
+ type: u32
+ value: 2
+
+operations:
+ name-prefix: drbd-adm-
+ fixed-header: drbd-genlmsghdr
+ list:
+ - name: event
+ doc: Legacy state broadcast (DRBD 8.4).
+ value: 1
+
+ - name: get-status
+ doc: Query status of a single device (by minor) or dump all.
+ value: 2
+ attribute-set: drbd
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ dump:
+ request:
+ attributes:
+ - cfg-context
+ - name: new-minor
+ doc: Add a DRBD minor device as a volume to a resource.
+ value: 5
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: del-minor
+ doc: Delete a DRBD minor device.
+ value: 6
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: new-resource
+ doc: Create a new DRBD resource.
+ value: 7
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - resource-opts
+ - name: del-resource
+ doc: Delete a DRBD resource.
+ value: 8
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: resource-opts
+ doc: Change resource options.
+ value: 9
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - resource-opts
+ - name: connect
+ doc: Connect to a peer.
+ value: 10
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - net-conf
+ - name: disconnect
+ doc: Disconnect from a peer.
+ value: 11
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - disconnect-parms
+ - name: attach
+ doc: Attach a local backing device to a DRBD minor.
+ value: 12
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - disk-conf
+ - name: resize
+ doc: Resize the DRBD device.
+ value: 13
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - resize-parms
+ - name: primary
+ doc: Promote a device to primary role.
+ value: 14
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - set-role-parms
+ - name: secondary
+ doc: Demote a device to secondary role.
+ value: 15
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - set-role-parms
+ - name: new-c-uuid
+ doc: Generate a new current UUID.
+ value: 16
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - new-c-uuid-parms
+ - name: start-ov
+ doc: Start online verification.
+ value: 17
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - start-ov-parms
+ - name: detach
+ doc: Detach the local backing device.
+ value: 18
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - detach-parms
+ - name: invalidate
+ doc: Invalidate local data, start full resync as sync target.
+ value: 19
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: inval-peer
+ doc: Invalidate peer data, start full resync as sync source.
+ value: 20
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: pause-sync
+ doc: Pause resynchronization.
+ value: 21
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: resume-sync
+ doc: Resume resynchronization.
+ value: 22
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: suspend-io
+ doc: Suspend I/O on a device.
+ value: 23
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: resume-io
+ doc: Resume I/O on a device.
+ value: 24
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: outdate
+ doc: Mark a device as outdated.
+ value: 25
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: get-timeout-type
+ doc: Query the current timeout type.
+ value: 26
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: down
+ doc: Shut down a DRBD resource (demote, disconnect, detach, delete).
+ value: 27
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - name: chg-disk-opts
+ doc: Change disk options on an attached device.
+ value: 28
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - disk-conf
+ - name: chg-net-opts
+ doc: Change network options on a connection.
+ value: 29
+ attribute-set: drbd
+ flags:
+ - admin-perm
+ do:
+ pre: drbd-pre-doit
+ post: drbd-post-doit
+ request:
+ attributes:
+ - cfg-context
+ - net-conf
+ - name: get-resources
+ doc: Dump all resources with info and statistics.
+ value: 30
+ attribute-set: drbd
+ dump:
+ request:
+ attributes:
+ - cfg-context
+ - resource-info
+ - resource-statistics
+ - name: get-devices
+ doc: Dump all devices with info and statistics.
+ value: 31
+ attribute-set: drbd
+ dump:
+ request:
+ attributes:
+ - cfg-context
+ - device-info
+ - device-statistics
+ post: drbd-adm-dump-devices-done
+ - name: get-connections
+ doc: Dump all connections with info and statistics.
+ value: 32
+ attribute-set: drbd
+ dump:
+ request:
+ attributes:
+ - cfg-context
+ - connection-info
+ - connection-statistics
+ post: drbd-adm-dump-connections-done
+ - name: get-peer-devices
+ doc: Dump all peer devices with info and statistics.
+ value: 33
+ attribute-set: drbd
+ dump:
+ request:
+ attributes:
+ - cfg-context
+ - peer-device-info
+ - peer-device-statistics
+ post: drbd-adm-dump-peer-devices-done
+ - name: resource-state
+ doc: Resource state change notification.
+ value: 34
+
+ - name: device-state
+ doc: Device state change notification.
+ value: 35
+
+ - name: connection-state
+ doc: Connection state change notification.
+ value: 36
+
+ - name: peer-device-state
+ doc: Peer device state change notification.
+ value: 37
+
+ - name: get-initial-state
+ doc: Dump current state of all objects as a notification stream.
+ value: 38
+ attribute-set: drbd
+ dump:
+ request:
+ attributes:
+ - cfg-context
+ - name: helper
+ doc: Helper invocation notification.
+ value: 40
+
+ - name: initial-state-done
+ doc: Signals end of initial state dump.
+ value: 41
+
+
+mcast-groups:
+ list:
+ - name: events
diff --git a/include/uapi/linux/drbd.h b/include/uapi/linux/drbd.h
index 7930a972d8a4..5d4d677cf1ad 100644
--- a/include/uapi/linux/drbd.h
+++ b/include/uapi/linux/drbd.h
@@ -333,6 +333,9 @@ enum drbd_uuid_index {
#define HISTORY_UUIDS MAX_PEERS
+#define DRBD_NL_UUIDS_SIZE (UI_SIZE * sizeof(__u64))
+#define DRBD_NL_HISTORY_UUIDS_SIZE (HISTORY_UUIDS * sizeof(__u64))
+
enum drbd_timeout_flag {
UT_DEFAULT = 0,
UT_DEGRADED = 1,
--
2.53.0
next prev parent reply other threads:[~2026-04-07 17:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-07 17:33 [PATCH 0/4] drbd: switch from genl_magic to YNL Christoph Böhmwalder
2026-04-07 17:33 ` [PATCH 1/4] drbd: move UAPI headers to include/uapi/linux/ Christoph Böhmwalder
2026-04-07 17:33 ` [PATCH 2/4] tools: ynl-gen-c: optionally emit structs and helpers Christoph Böhmwalder
2026-04-12 19:55 ` Jakub Kicinski
2026-04-13 11:48 ` Christoph Böhmwalder
2026-04-13 17:49 ` Jakub Kicinski
2026-04-14 12:08 ` Christoph Böhmwalder
2026-04-14 15:35 ` Jakub Kicinski
2026-04-07 17:33 ` Christoph Böhmwalder [this message]
2026-04-07 17:33 ` [PATCH 4/4] drbd: switch from genl_magic macros to YNL-generated code Christoph Böhmwalder
2026-04-18 4:36 ` kernel test robot
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=20260407173356.873887-4-christoph.boehmwalder@linbit.com \
--to=christoph.boehmwalder@linbit.com \
--cc=axboe@kernel.dk \
--cc=donald.hunter@gmail.com \
--cc=drbd-dev@lists.linbit.com \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=lars.ellenberg@linbit.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=philipp.reisner@linbit.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox