1643ef4a6SDonald Hunter# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2643ef4a6SDonald Hunter
3643ef4a6SDonald Huntername: ovs_datapath
4643ef4a6SDonald Hunterversion: 2
5643ef4a6SDonald Hunterprotocol: genetlink-legacy
6*6907217aSDonald Hunteruapi-header: linux/openvswitch.h
7643ef4a6SDonald Hunter
8643ef4a6SDonald Hunterdoc:
9643ef4a6SDonald Hunter  OVS datapath configuration over generic netlink.
10643ef4a6SDonald Hunter
11643ef4a6SDonald Hunterdefinitions:
12643ef4a6SDonald Hunter  -
13643ef4a6SDonald Hunter    name: ovs-header
14643ef4a6SDonald Hunter    type: struct
15643ef4a6SDonald Hunter    members:
16643ef4a6SDonald Hunter      -
17643ef4a6SDonald Hunter        name: dp-ifindex
18643ef4a6SDonald Hunter        type: u32
19643ef4a6SDonald Hunter  -
20643ef4a6SDonald Hunter    name: user-features
21643ef4a6SDonald Hunter    type: flags
22*6907217aSDonald Hunter    name-prefix: ovs-dp-f-
23643ef4a6SDonald Hunter    entries:
24643ef4a6SDonald Hunter      -
25643ef4a6SDonald Hunter        name: unaligned
26643ef4a6SDonald Hunter        doc: Allow last Netlink attribute to be unaligned
27643ef4a6SDonald Hunter      -
28643ef4a6SDonald Hunter        name: vport-pids
29643ef4a6SDonald Hunter        doc: Allow datapath to associate multiple Netlink PIDs to each vport
30643ef4a6SDonald Hunter      -
31643ef4a6SDonald Hunter        name: tc-recirc-sharing
32643ef4a6SDonald Hunter        doc: Allow tc offload recirc sharing
33643ef4a6SDonald Hunter      -
34643ef4a6SDonald Hunter        name: dispatch-upcall-per-cpu
35643ef4a6SDonald Hunter        doc: Allow per-cpu dispatch of upcalls
36643ef4a6SDonald Hunter  -
37643ef4a6SDonald Hunter    name: datapath-stats
38*6907217aSDonald Hunter    enum-name: ovs-dp-stats
39643ef4a6SDonald Hunter    type: struct
40643ef4a6SDonald Hunter    members:
41643ef4a6SDonald Hunter      -
42*6907217aSDonald Hunter        name: n-hit
43643ef4a6SDonald Hunter        type: u64
44643ef4a6SDonald Hunter      -
45*6907217aSDonald Hunter        name: n-missed
46643ef4a6SDonald Hunter        type: u64
47643ef4a6SDonald Hunter      -
48*6907217aSDonald Hunter        name: n-lost
49643ef4a6SDonald Hunter        type: u64
50643ef4a6SDonald Hunter      -
51*6907217aSDonald Hunter        name: n-flows
52643ef4a6SDonald Hunter        type: u64
53643ef4a6SDonald Hunter  -
54643ef4a6SDonald Hunter    name: megaflow-stats
55*6907217aSDonald Hunter    enum-name: ovs-dp-megaflow-stats
56643ef4a6SDonald Hunter    type: struct
57643ef4a6SDonald Hunter    members:
58643ef4a6SDonald Hunter      -
59*6907217aSDonald Hunter        name: n-mask-hit
60643ef4a6SDonald Hunter        type: u64
61643ef4a6SDonald Hunter      -
62*6907217aSDonald Hunter        name: n-masks
63643ef4a6SDonald Hunter        type: u32
64643ef4a6SDonald Hunter      -
65643ef4a6SDonald Hunter        name: padding
66643ef4a6SDonald Hunter        type: u32
67643ef4a6SDonald Hunter      -
68*6907217aSDonald Hunter        name: n-cache-hit
69643ef4a6SDonald Hunter        type: u64
70643ef4a6SDonald Hunter      -
71643ef4a6SDonald Hunter        name: pad1
72643ef4a6SDonald Hunter        type: u64
73643ef4a6SDonald Hunter
74643ef4a6SDonald Hunterattribute-sets:
75643ef4a6SDonald Hunter  -
76643ef4a6SDonald Hunter    name: datapath
77*6907217aSDonald Hunter    name-prefix: ovs-dp-attr-
78*6907217aSDonald Hunter    enum-name: ovs-datapath-attrs
79643ef4a6SDonald Hunter    attributes:
80643ef4a6SDonald Hunter      -
81643ef4a6SDonald Hunter        name: name
82643ef4a6SDonald Hunter        type: string
83643ef4a6SDonald Hunter      -
84643ef4a6SDonald Hunter        name: upcall-pid
85643ef4a6SDonald Hunter        doc: upcall pid
86643ef4a6SDonald Hunter        type: u32
87643ef4a6SDonald Hunter      -
88643ef4a6SDonald Hunter        name: stats
89643ef4a6SDonald Hunter        type: binary
90643ef4a6SDonald Hunter        struct: datapath-stats
91643ef4a6SDonald Hunter      -
92643ef4a6SDonald Hunter        name: megaflow-stats
93643ef4a6SDonald Hunter        type: binary
94643ef4a6SDonald Hunter        struct: megaflow-stats
95643ef4a6SDonald Hunter      -
96643ef4a6SDonald Hunter        name: user-features
97643ef4a6SDonald Hunter        type: u32
98643ef4a6SDonald Hunter        enum: user-features
99643ef4a6SDonald Hunter        enum-as-flags: true
100643ef4a6SDonald Hunter      -
101643ef4a6SDonald Hunter        name: pad
102643ef4a6SDonald Hunter        type: unused
103643ef4a6SDonald Hunter      -
104643ef4a6SDonald Hunter        name: masks-cache-size
105643ef4a6SDonald Hunter        type: u32
106643ef4a6SDonald Hunter      -
107643ef4a6SDonald Hunter        name: per-cpu-pids
108643ef4a6SDonald Hunter        type: binary
109643ef4a6SDonald Hunter        sub-type: u32
110*6907217aSDonald Hunter      -
111*6907217aSDonald Hunter        name: ifindex
112*6907217aSDonald Hunter        type: u32
113643ef4a6SDonald Hunter
114643ef4a6SDonald Hunteroperations:
115643ef4a6SDonald Hunter  fixed-header: ovs-header
116*6907217aSDonald Hunter  name-prefix: ovs-dp-cmd-
117643ef4a6SDonald Hunter  list:
118643ef4a6SDonald Hunter    -
119*6907217aSDonald Hunter      name: get
120643ef4a6SDonald Hunter      doc: Get / dump OVS data path configuration and state
121643ef4a6SDonald Hunter      value: 3
122643ef4a6SDonald Hunter      attribute-set: datapath
123643ef4a6SDonald Hunter      do: &dp-get-op
124643ef4a6SDonald Hunter        request:
125643ef4a6SDonald Hunter          attributes:
126643ef4a6SDonald Hunter            - name
127643ef4a6SDonald Hunter        reply:
128643ef4a6SDonald Hunter          attributes:
129643ef4a6SDonald Hunter            - name
130643ef4a6SDonald Hunter            - upcall-pid
131643ef4a6SDonald Hunter            - stats
132643ef4a6SDonald Hunter            - megaflow-stats
133643ef4a6SDonald Hunter            - user-features
134643ef4a6SDonald Hunter            - masks-cache-size
135643ef4a6SDonald Hunter            - per-cpu-pids
136643ef4a6SDonald Hunter      dump: *dp-get-op
137643ef4a6SDonald Hunter    -
138*6907217aSDonald Hunter      name: new
139643ef4a6SDonald Hunter      doc: Create new OVS data path
140643ef4a6SDonald Hunter      value: 1
141643ef4a6SDonald Hunter      attribute-set: datapath
142643ef4a6SDonald Hunter      do:
143643ef4a6SDonald Hunter        request:
144643ef4a6SDonald Hunter          attributes:
145643ef4a6SDonald Hunter            - dp-ifindex
146643ef4a6SDonald Hunter            - name
147643ef4a6SDonald Hunter            - upcall-pid
148643ef4a6SDonald Hunter            - user-features
149643ef4a6SDonald Hunter    -
150*6907217aSDonald Hunter      name: del
151643ef4a6SDonald Hunter      doc: Delete existing OVS data path
152643ef4a6SDonald Hunter      value: 2
153643ef4a6SDonald Hunter      attribute-set: datapath
154643ef4a6SDonald Hunter      do:
155643ef4a6SDonald Hunter        request:
156643ef4a6SDonald Hunter          attributes:
157643ef4a6SDonald Hunter            - dp-ifindex
158643ef4a6SDonald Hunter            - name
159643ef4a6SDonald Hunter
160643ef4a6SDonald Huntermcast-groups:
161643ef4a6SDonald Hunter  list:
162643ef4a6SDonald Hunter    -
163643ef4a6SDonald Hunter      name: ovs_datapath
164