summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Hunter <donald.hunter@gmail.com>2023-06-15 16:14:05 +0100
committerJakub Kicinski <kuba@kernel.org>2023-06-17 00:18:00 -0700
commit6907217a8054b8afc47b3944afc7d77ad5caf824 (patch)
tree5d97082316a3e22793b5c44aab1cad526c4724ca
parente16ad981e2a1e4a9afd1ce0d7a47cd9d8f09feda (diff)
netlink: specs: fixup openvswitch specs for code generation
Refine the ovs_* specs to align exactly with the ovs netlink UAPI definitions to enable code generation. Signed-off-by: Donald Hunter <donald.hunter@gmail.com> Link: https://lore.kernel.org/r/20230615151405.77649-1-donald.hunter@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--Documentation/netlink/specs/ovs_datapath.yaml30
-rw-r--r--Documentation/netlink/specs/ovs_flow.yaml68
-rw-r--r--Documentation/netlink/specs/ovs_vport.yaml13
3 files changed, 87 insertions, 24 deletions
diff --git a/Documentation/netlink/specs/ovs_datapath.yaml b/Documentation/netlink/specs/ovs_datapath.yaml
index 6d71db8c4416..f709c26c3e92 100644
--- a/Documentation/netlink/specs/ovs_datapath.yaml
+++ b/Documentation/netlink/specs/ovs_datapath.yaml
@@ -3,6 +3,7 @@
name: ovs_datapath
version: 2
protocol: genetlink-legacy
+uapi-header: linux/openvswitch.h
doc:
OVS datapath configuration over generic netlink.
@@ -18,6 +19,7 @@ definitions:
-
name: user-features
type: flags
+ name-prefix: ovs-dp-f-
entries:
-
name: unaligned
@@ -33,35 +35,37 @@ definitions:
doc: Allow per-cpu dispatch of upcalls
-
name: datapath-stats
+ enum-name: ovs-dp-stats
type: struct
members:
-
- name: hit
+ name: n-hit
type: u64
-
- name: missed
+ name: n-missed
type: u64
-
- name: lost
+ name: n-lost
type: u64
-
- name: flows
+ name: n-flows
type: u64
-
name: megaflow-stats
+ enum-name: ovs-dp-megaflow-stats
type: struct
members:
-
- name: mask-hit
+ name: n-mask-hit
type: u64
-
- name: masks
+ name: n-masks
type: u32
-
name: padding
type: u32
-
- name: cache-hits
+ name: n-cache-hit
type: u64
-
name: pad1
@@ -70,6 +74,8 @@ definitions:
attribute-sets:
-
name: datapath
+ name-prefix: ovs-dp-attr-
+ enum-name: ovs-datapath-attrs
attributes:
-
name: name
@@ -101,12 +107,16 @@ attribute-sets:
name: per-cpu-pids
type: binary
sub-type: u32
+ -
+ name: ifindex
+ type: u32
operations:
fixed-header: ovs-header
+ name-prefix: ovs-dp-cmd-
list:
-
- name: dp-get
+ name: get
doc: Get / dump OVS data path configuration and state
value: 3
attribute-set: datapath
@@ -125,7 +135,7 @@ operations:
- per-cpu-pids
dump: *dp-get-op
-
- name: dp-new
+ name: new
doc: Create new OVS data path
value: 1
attribute-set: datapath
@@ -137,7 +147,7 @@ operations:
- upcall-pid
- user-features
-
- name: dp-del
+ name: del
doc: Delete existing OVS data path
value: 2
attribute-set: datapath
diff --git a/Documentation/netlink/specs/ovs_flow.yaml b/Documentation/netlink/specs/ovs_flow.yaml
index 3b0624c87074..1ecbcd117385 100644
--- a/Documentation/netlink/specs/ovs_flow.yaml
+++ b/Documentation/netlink/specs/ovs_flow.yaml
@@ -3,6 +3,7 @@
name: ovs_flow
version: 1
protocol: genetlink-legacy
+uapi-header: linux/openvswitch.h
doc:
OVS flow configuration over generic netlink.
@@ -67,6 +68,7 @@ definitions:
enum: ovs-frag-type
-
name: ovs-frag-type
+ name-prefix: ovs-frag-type-
type: enum
entries:
-
@@ -166,6 +168,7 @@ definitions:
doc: Tag control identifier (TCI) to push.
-
name: ovs-ufid-flags
+ name-prefix: ovs-ufid-f-
type: flags
entries:
- omit-key
@@ -176,7 +179,7 @@ definitions:
type: struct
members:
-
- name: hash-algorithm
+ name: hash-alg
type: u32
doc: Algorithm used to compute hash prior to recirculation.
-
@@ -198,13 +201,13 @@ definitions:
type: struct
members:
-
- name: lse
+ name: mpls-lse
type: u32
byte-order: big-endian
doc: |
MPLS label stack entry to push
-
- name: ethertype
+ name: mpls-ethertype
type: u32
byte-order: big-endian
doc: |
@@ -216,13 +219,13 @@ definitions:
type: struct
members:
-
- name: lse
+ name: mpls-lse
type: u32
byte-order: big-endian
doc: |
MPLS label stack entry to push
-
- name: ethertype
+ name: mpls-ethertype
type: u32
byte-order: big-endian
doc: |
@@ -237,6 +240,7 @@ definitions:
-
name: ct-state-flags
type: flags
+ name-prefix: ovs-cs-f-
entries:
-
name: new
@@ -266,6 +270,8 @@ definitions:
attribute-sets:
-
name: flow-attrs
+ enum-name: ovs-flow-attr
+ name-prefix: ovs-flow-attr-
attributes:
-
name: key
@@ -352,6 +358,8 @@ attribute-sets:
-
name: key-attrs
+ enum-name: ovs-key-attr
+ name-prefix: ovs-key-attr-
attributes:
-
name: encap
@@ -481,6 +489,8 @@ attribute-sets:
doc: struct ovs_key_ipv6_exthdr
-
name: action-attrs
+ enum-name: ovs-action-attr
+ name-prefix: ovs-action-attr-
attributes:
-
name: output
@@ -608,6 +618,8 @@ attribute-sets:
nested-attributes: dec-ttl-attrs
-
name: tunnel-key-attrs
+ enum-name: ovs-tunnel-key-attr
+ name-prefix: ovs-tunnel-key-attr-
attributes:
-
name: id
@@ -676,6 +688,8 @@ attribute-sets:
type: flag
-
name: check-pkt-len-attrs
+ enum-name: ovs-check-pkt-len-attr
+ name-prefix: ovs-check-pkt-len-attr-
attributes:
-
name: pkt-len
@@ -690,6 +704,8 @@ attribute-sets:
nested-attributes: action-attrs
-
name: sample-attrs
+ enum-name: ovs-sample-attr
+ name-prefix: ovs-sample-attr-
attributes:
-
name: probability
@@ -700,6 +716,8 @@ attribute-sets:
nested-attributes: action-attrs
-
name: userspace-attrs
+ enum-name: ovs-userspace-attr
+ name-prefix: ovs-userspace-attr-
attributes:
-
name: pid
@@ -715,6 +733,8 @@ attribute-sets:
type: flag
-
name: ovs-nsh-key-attrs
+ enum-name: ovs-nsh-key-attr
+ name-prefix: ovs-nsh-key-attr-
attributes:
-
name: base
@@ -727,6 +747,8 @@ attribute-sets:
type: binary
-
name: ct-attrs
+ enum-name: ovs-ct-attr
+ name-prefix: ovs-ct-attr-
attributes:
-
name: commit
@@ -758,13 +780,15 @@ attribute-sets:
type: string
-
name: nat-attrs
+ enum-name: ovs-nat-attr
+ name-prefix: ovs-nat-attr-
attributes:
-
name: src
- type: binary
+ type: flag
-
name: dst
- type: binary
+ type: flag
-
name: ip-min
type: binary
@@ -773,21 +797,23 @@ attribute-sets:
type: binary
-
name: proto-min
- type: binary
+ type: u16
-
name: proto-max
- type: binary
+ type: u16
-
name: persistent
- type: binary
+ type: flag
-
name: proto-hash
- type: binary
+ type: flag
-
name: proto-random
- type: binary
+ type: flag
-
name: dec-ttl-attrs
+ enum-name: ovs-dec-ttl-attr
+ name-prefix: ovs-dec-ttl-attr-
attributes:
-
name: action
@@ -795,16 +821,19 @@ attribute-sets:
nested-attributes: action-attrs
-
name: vxlan-ext-attrs
+ enum-name: ovs-vxlan-ext-
+ name-prefix: ovs-vxlan-ext-
attributes:
-
name: gbp
type: u32
operations:
+ name-prefix: ovs-flow-cmd-
fixed-header: ovs-header
list:
-
- name: flow-get
+ name: get
doc: Get / dump OVS flow configuration and state
value: 3
attribute-set: flow-attrs
@@ -824,6 +853,19 @@ operations:
- stats
- actions
dump: *flow-get-op
+ -
+ name: new
+ doc: Create OVS flow configuration in a data path
+ value: 1
+ attribute-set: flow-attrs
+ do:
+ request:
+ attributes:
+ - dp-ifindex
+ - key
+ - ufid
+ - mask
+ - actions
mcast-groups:
list:
diff --git a/Documentation/netlink/specs/ovs_vport.yaml b/Documentation/netlink/specs/ovs_vport.yaml
index 8e55622ddf11..17336455bec1 100644
--- a/Documentation/netlink/specs/ovs_vport.yaml
+++ b/Documentation/netlink/specs/ovs_vport.yaml
@@ -3,6 +3,7 @@
name: ovs_vport
version: 2
protocol: genetlink-legacy
+uapi-header: linux/openvswitch.h
doc:
OVS vport configuration over generic netlink.
@@ -18,10 +19,13 @@ definitions:
-
name: vport-type
type: enum
+ enum-name: ovs-vport-type
+ name-prefix: ovs-vport-type-
entries: [ unspec, netdev, internal, gre, vxlan, geneve ]
-
name: vport-stats
type: struct
+ enum-name: ovs-vport-stats
members:
-
name: rx-packets
@@ -51,6 +55,8 @@ definitions:
attribute-sets:
-
name: vport-options
+ enum-name: ovs-vport-options
+ name-prefix: ovs-tunnel-attr-
attributes:
-
name: dst-port
@@ -60,6 +66,8 @@ attribute-sets:
type: u32
-
name: upcall-stats
+ enum-name: ovs-vport-upcall-attr
+ name-prefix: ovs-vport-upcall-attr-
attributes:
-
name: success
@@ -70,6 +78,8 @@ attribute-sets:
type: u64
-
name: vport
+ name-prefix: ovs-vport-attr-
+ enum-name: ovs-vport-attr
attributes:
-
name: port-no
@@ -108,9 +118,10 @@ attribute-sets:
nested-attributes: upcall-stats
operations:
+ name-prefix: ovs-vport-cmd-
list:
-
- name: vport-get
+ name: get
doc: Get / dump OVS vport configuration and state
value: 3
attribute-set: vport