All of lore.kernel.org
 help / color / mirror / Atom feed
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


             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.