Commit e18f3dc2 authored by Jiri Pirko's avatar Jiri Pirko Committed by Jakub Kicinski

tools: ynl-gen: lift type requirement for attribute subsets

In case an attribute is used in a subset, the type has to be currently
specified. As the attribute is already defined in the original set, this
is a redundant information in yaml file, moreover, may lead to
inconsistencies.

Example:
attribute-sets:
    ...
    name: pin
    enum-name: dpll_a_pin
    attributes:
      ...
      -
        name: parent-id
        type: u32
      ...
  -
    name: pin-parent-device
    subset-of: pin
    attributes:
      -
        name: parent-id
        type: u32             <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Remove the requirement from schema files to specify the "type" for
attribute subsets.
Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/r/20231006114436.1725425-2-jiri@resnulli.usSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent c0423539
......@@ -142,7 +142,7 @@ properties:
type: array
items:
type: object
required: [ name, type ]
required: [ name ]
additionalProperties: False
properties:
name:
......@@ -215,6 +215,18 @@ properties:
not:
required: [ name-prefix ]
# type property is only required if not in subset definition
if:
properties:
subset-of:
not:
type: string
then:
properties:
attributes:
items:
required: [ type ]
operations:
description: Operations supported by the protocol.
type: object
......
......@@ -180,7 +180,7 @@ properties:
type: array
items:
type: object
required: [ name, type ]
required: [ name ]
additionalProperties: False
properties:
name:
......@@ -254,6 +254,18 @@ properties:
not:
required: [ name-prefix ]
# type property is only required if not in subset definition
if:
properties:
subset-of:
not:
type: string
then:
properties:
attributes:
items:
required: [ type ]
operations:
description: Operations supported by the protocol.
type: object
......
......@@ -115,7 +115,7 @@ properties:
type: array
items:
type: object
required: [ name, type ]
required: [ name ]
additionalProperties: False
properties:
name:
......@@ -184,6 +184,18 @@ properties:
not:
required: [ name-prefix ]
# type property is only required if not in subset definition
if:
properties:
subset-of:
not:
type: string
then:
properties:
attributes:
items:
required: [ type ]
operations:
description: Operations supported by the protocol.
type: object
......
......@@ -187,7 +187,7 @@ properties:
type: array
items:
type: object
required: [ name, type ]
required: [ name ]
additionalProperties: False
properties:
name:
......@@ -261,6 +261,18 @@ properties:
not:
required: [ name-prefix ]
# type property is only required if not in subset definition
if:
properties:
subset-of:
not:
type: string
then:
properties:
attributes:
items:
required: [ type ]
operations:
description: Operations supported by the protocol.
type: object
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment