From: Donald Hunter <donald.hunter@gmail.com>
To: netdev@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>
Cc: donald.hunter@redhat.com, Donald Hunter <donald.hunter@gmail.com>
Subject: [PATCH net-next v1] netlink: specs: fixup openvswitch specs for code generation
Date: Thu, 15 Jun 2023 16:14:05 +0100 [thread overview]
Message-ID: <20230615151405.77649-1-donald.hunter@gmail.com> (raw)
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>
---
Documentation/netlink/specs/ovs_datapath.yaml | 30 +++++---
Documentation/netlink/specs/ovs_flow.yaml | 68 +++++++++++++++----
Documentation/netlink/specs/ovs_vport.yaml | 13 +++-
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
--
2.39.0
next reply other threads:[~2023-06-15 15:14 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-15 15:14 Donald Hunter [this message]
2023-06-16 3:03 ` [PATCH net-next v1] netlink: specs: fixup openvswitch specs for code generation Jakub Kicinski
2023-06-17 7:30 ` patchwork-bot+netdevbpf
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=20230615151405.77649-1-donald.hunter@gmail.com \
--to=donald.hunter@gmail.com \
--cc=davem@davemloft.net \
--cc=donald.hunter@redhat.com \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.