# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) name: devlink protocol: genetlink-legacy doc: Partial family for Devlink. definitions: - type: enum name: sb-pool-type entries: - name: ingress - name: egress attribute-sets: - name: devlink name-prefix: devlink-attr- 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: sb-index type: u32 value: 11 # TODO: fill in the attributes in between - name: sb-pool-index type: u16 value: 17 - name: sb-pool-type type: u8 enum: sb-pool-type # TODO: fill in the attributes in between - name: sb-tc-index type: u16 value: 22 # TODO: fill in the attributes in between - name: param-name type: string value: 81 # TODO: fill in the attributes in between - name: region-name type: string value: 88 # 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: health-reporter-name type: string value: 115 # TODO: fill in the attributes in between - name: trap-name type: string value: 130 # TODO: fill in the attributes in between - name: trap-group-name type: string value: 135 - name: reload-failed type: u8 # TODO: fill in the attributes in between - name: trap-policer-id type: u32 value: 142 # 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 multi-attr: true nested-attributes: dl-reload-act-info - name: reload-action-stats type: nest multi-attr: true nested-attributes: dl-reload-act-stats # TODO: fill in the attributes in between - name: rate-node-name type: string value: 168 # TODO: fill in the attributes in between - name: linecard-index type: u32 value: 171 - 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 dont-validate: - strict - dump do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit 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 - name: port-get doc: Get devlink port instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit-port post: devlink-nl-post-doit request: value: 5 attributes: &port-id-attrs - bus-name - dev-name - port-index reply: value: 7 attributes: *port-id-attrs dump: request: attributes: *dev-id-attrs reply: value: 3 # due to a bug, port dump returns DEVLINK_CMD_NEW attributes: *port-id-attrs # TODO: fill in the operations in between - name: sb-get doc: Get shared buffer instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 11 attributes: &sb-id-attrs - bus-name - dev-name - sb-index reply: &sb-get-reply value: 11 attributes: *sb-id-attrs dump: request: attributes: *dev-id-attrs reply: *sb-get-reply # TODO: fill in the operations in between - name: sb-pool-get doc: Get shared buffer pool instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 15 attributes: &sb-pool-id-attrs - bus-name - dev-name - sb-index - sb-pool-index reply: &sb-pool-get-reply value: 15 attributes: *sb-pool-id-attrs dump: request: attributes: *dev-id-attrs reply: *sb-pool-get-reply # TODO: fill in the operations in between - name: sb-port-pool-get doc: Get shared buffer port-pool combinations and threshold. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit-port post: devlink-nl-post-doit request: value: 19 attributes: &sb-port-pool-id-attrs - bus-name - dev-name - port-index - sb-index - sb-pool-index reply: &sb-port-pool-get-reply value: 19 attributes: *sb-port-pool-id-attrs dump: request: attributes: *dev-id-attrs reply: *sb-port-pool-get-reply # TODO: fill in the operations in between - name: sb-tc-pool-bind-get doc: Get shared buffer port-TC to pool bindings and threshold. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit-port post: devlink-nl-post-doit request: value: 23 attributes: &sb-tc-pool-bind-id-attrs - bus-name - dev-name - port-index - sb-index - sb-pool-type - sb-tc-index reply: &sb-tc-pool-bind-get-reply value: 23 attributes: *sb-tc-pool-bind-id-attrs dump: request: attributes: *dev-id-attrs reply: *sb-tc-pool-bind-get-reply # TODO: fill in the operations in between - name: param-get doc: Get param instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 38 attributes: ¶m-id-attrs - bus-name - dev-name - param-name reply: ¶m-get-reply value: 38 attributes: *param-id-attrs dump: request: attributes: *dev-id-attrs reply: *param-get-reply # TODO: fill in the operations in between - name: region-get doc: Get region instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit-port-optional post: devlink-nl-post-doit request: value: 42 attributes: ®ion-id-attrs - bus-name - dev-name - port-index - region-name reply: ®ion-get-reply value: 42 attributes: *region-id-attrs dump: request: attributes: *dev-id-attrs reply: *region-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 dont-validate: - strict - dump do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 51 attributes: *dev-id-attrs reply: &info-get-reply value: 51 attributes: - bus-name - dev-name - info-driver-name - info-serial-number - info-version-fixed - info-version-running - info-version-stored dump: reply: *info-get-reply - name: health-reporter-get doc: Get health reporter instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit-port-optional post: devlink-nl-post-doit request: attributes: &health-reporter-id-attrs - bus-name - dev-name - port-index - health-reporter-name reply: &health-reporter-get-reply attributes: *health-reporter-id-attrs dump: request: attributes: *port-id-attrs reply: *health-reporter-get-reply # TODO: fill in the operations in between - name: trap-get doc: Get trap instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 61 attributes: &trap-id-attrs - bus-name - dev-name - trap-name reply: &trap-get-reply value: 61 attributes: *trap-id-attrs dump: request: attributes: *dev-id-attrs reply: *trap-get-reply # TODO: fill in the operations in between - name: trap-group-get doc: Get trap group instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 65 attributes: &trap-group-id-attrs - bus-name - dev-name - trap-group-name reply: &trap-group-get-reply value: 65 attributes: *trap-group-id-attrs dump: request: attributes: *dev-id-attrs reply: *trap-group-get-reply # TODO: fill in the operations in between - name: trap-policer-get doc: Get trap policer instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 69 attributes: &trap-policer-id-attrs - bus-name - dev-name - trap-policer-id reply: &trap-policer-get-reply value: 69 attributes: *trap-policer-id-attrs dump: request: attributes: *dev-id-attrs reply: *trap-policer-get-reply # TODO: fill in the operations in between - name: rate-get doc: Get rate instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 74 attributes: &rate-id-attrs - bus-name - dev-name - port-index - rate-node-name reply: &rate-get-reply value: 74 attributes: *rate-id-attrs dump: request: attributes: *dev-id-attrs reply: *rate-get-reply # TODO: fill in the operations in between - name: linecard-get doc: Get line card instances. attribute-set: devlink dont-validate: - strict do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 78 attributes: &linecard-id-attrs - bus-name - dev-name - linecard-index reply: &linecard-get-reply value: 78 attributes: *linecard-id-attrs dump: request: attributes: *dev-id-attrs reply: *linecard-get-reply # TODO: fill in the operations in between - name: selftests-get doc: Get device selftest instances. attribute-set: devlink dont-validate: - strict - dump do: pre: devlink-nl-pre-doit post: devlink-nl-post-doit request: value: 82 attributes: *dev-id-attrs reply: &selftests-get-reply value: 82 attributes: *dev-id-attrs dump: reply: *selftests-get-reply