Skip to content

Commit

Permalink
netlink-specs: add partial specification for devlink
Browse files Browse the repository at this point in the history
Devlink is quite complex but put in the very basics so we can
incrementally fill in the commands as needed.

$ ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/devlink.yaml \
    --dump get

[{'bus-name': 'netdevsim',
  'dev-name': 'netdevsim1',
  'dev-stats': {'reload-stats': {'reload-action-info': {'reload-action': 1,
                                                        'reload-action-stats': {'reload-stats-entry': [{'reload-stats-limit': 0,
                                                                                                        'reload-stats-value': 0}]}}},
                'remote-reload-stats': {'reload-action-info': {'reload-action': 2,
                                                               'reload-action-stats': {'reload-stats-entry': [{'reload-stats-limit': 0,
                                                                                                               'reload-stats-value': 0},
                                                                                                              {'reload-stats-limit': 1,
                                                                                                               'reload-stats-value': 0}]}}}},
  'reload-failed': 0}]

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jakub Kicinski authored and David S. Miller committed Mar 17, 2023
1 parent 19a9fbc commit 74bf647
Showing 1 changed file with 198 additions and 0 deletions.
198 changes: 198 additions & 0 deletions Documentation/netlink/specs/devlink.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)

name: devlink

protocol: genetlink-legacy

doc: Partial family for Devlink.

attribute-sets:
-
name: devlink
attributes:
-
name: bus-name
type: string
value: 1
-
name: dev-name
type: string
-
name: port-index
type: u32

# TODO: fill in the attributes in between

-
name: info-driver-name
type: string
value: 98
-
name: info-serial-number
type: string
-
name: info-version-fixed
type: nest
multi-attr: true
nested-attributes: dl-info-version
-
name: info-version-running
type: nest
multi-attr: true
nested-attributes: dl-info-version
-
name: info-version-stored
type: nest
multi-attr: true
nested-attributes: dl-info-version
-
name: info-version-name
type: string
-
name: info-version-value
type: string

# TODO: fill in the attributes in between

-
name: reload-failed
type: u8
value: 136

# TODO: fill in the attributes in between

-
name: reload-action
type: u8
value: 153

# TODO: fill in the attributes in between

-
name: dev-stats
type: nest
value: 156
nested-attributes: dl-dev-stats
-
name: reload-stats
type: nest
nested-attributes: dl-reload-stats
-
name: reload-stats-entry
type: nest
multi-attr: true
nested-attributes: dl-reload-stats-entry
-
name: reload-stats-limit
type: u8
-
name: reload-stats-value
type: u32
-
name: remote-reload-stats
type: nest
nested-attributes: dl-reload-stats
-
name: reload-action-info
type: nest
nested-attributes: dl-reload-act-info
-
name: reload-action-stats
type: nest
nested-attributes: dl-reload-act-stats
-
name: dl-dev-stats
subset-of: devlink
attributes:
-
name: reload-stats
type: nest
-
name: remote-reload-stats
type: nest
-
name: dl-reload-stats
subset-of: devlink
attributes:
-
name: reload-action-info
type: nest
-
name: dl-reload-act-info
subset-of: devlink
attributes:
-
name: reload-action
type: u8
-
name: reload-action-stats
type: nest
-
name: dl-reload-act-stats
subset-of: devlink
attributes:
-
name: reload-stats-entry
type: nest
-
name: dl-reload-stats-entry
subset-of: devlink
attributes:
-
name: reload-stats-limit
type: u8
-
name: reload-stats-value
type: u32
-
name: dl-info-version
subset-of: devlink
attributes:
-
name: info-version-name
type: string
-
name: info-version-value
type: string

operations:
enum-model: directional
list:
-
name: get
doc: Get devlink instances.
attribute-set: devlink

do:
request:
value: 1
attributes: &dev-id-attrs
- bus-name
- dev-name
reply: &get-reply
value: 3
attributes:
- bus-name
- dev-name
- reload-failed
- reload-action
- dev-stats
dump:
reply: *get-reply

# TODO: fill in the operations in between

-
name: info-get
doc: Get device information, like driver name, hardware and firmware versions etc.
attribute-set: devlink

do:
request:
value: 51
attributes: *dev-id-attrs
reply:
value: 51
attributes:
- bus-name
- dev-name

0 comments on commit 74bf647

Please sign in to comment.