xref: /linux/Documentation/netlink/specs/ovs_datapath.yaml (revision b803c4a4f78834b31ebfbbcea350473333760559)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3name: ovs_datapath
4version: 2
5protocol: genetlink-legacy
6uapi-header: linux/openvswitch.h
7
8doc:
9  OVS datapath configuration over generic netlink.
10
11definitions:
12  -
13    name: ovs-header
14    type: struct
15    members:
16      -
17        name: dp-ifindex
18        type: u32
19  -
20    name: user-features
21    type: flags
22    name-prefix: ovs-dp-f-
23    enum-name:
24    entries:
25      -
26        name: unaligned
27        doc: Allow last Netlink attribute to be unaligned
28      -
29        name: vport-pids
30        doc: Allow datapath to associate multiple Netlink PIDs to each vport
31      -
32        name: tc-recirc-sharing
33        doc: Allow tc offload recirc sharing
34      -
35        name: dispatch-upcall-per-cpu
36        doc: Allow per-cpu dispatch of upcalls
37  -
38    name: ovs-dp-stats
39    type: struct
40    members:
41      -
42        name: n-hit
43        type: u64
44      -
45        name: n-missed
46        type: u64
47      -
48        name: n-lost
49        type: u64
50      -
51        name: n-flows
52        type: u64
53  -
54    name: ovs-dp-megaflow-stats
55    type: struct
56    members:
57      -
58        name: n-mask-hit
59        type: u64
60      -
61        name: n-masks
62        type: u32
63      -
64        name: padding
65        type: u32
66      -
67        name: n-cache-hit
68        type: u64
69      -
70        name: pad1
71        type: u64
72
73attribute-sets:
74  -
75    name: datapath
76    name-prefix: ovs-dp-attr-
77    enum-name: ovs-datapath-attrs
78    attributes:
79      -
80        name: name
81        type: string
82      -
83        name: upcall-pid
84        doc: upcall pid
85        type: u32
86      -
87        name: stats
88        type: binary
89        struct: ovs-dp-stats
90      -
91        name: megaflow-stats
92        type: binary
93        struct: ovs-dp-megaflow-stats
94      -
95        name: user-features
96        type: u32
97        enum: user-features
98        enum-as-flags: true
99      -
100        name: pad
101        type: unused
102      -
103        name: masks-cache-size
104        type: u32
105      -
106        name: per-cpu-pids
107        type: binary
108        sub-type: u32
109      -
110        name: ifindex
111        type: u32
112
113operations:
114  fixed-header: ovs-header
115  name-prefix: ovs-dp-cmd-
116  list:
117    -
118      name: get
119      doc: Get / dump OVS data path configuration and state
120      value: 3
121      attribute-set: datapath
122      do: &dp-get-op
123        request:
124          attributes:
125            - name
126        reply:
127          attributes:
128            - name
129            - upcall-pid
130            - stats
131            - megaflow-stats
132            - user-features
133            - masks-cache-size
134            - per-cpu-pids
135      dump: *dp-get-op
136    -
137      name: new
138      doc: Create new OVS data path
139      value: 1
140      attribute-set: datapath
141      do:
142        request:
143          attributes:
144            - name
145            - upcall-pid
146            - user-features
147    -
148      name: del
149      doc: Delete existing OVS data path
150      value: 2
151      attribute-set: datapath
152      do:
153        request:
154          attributes:
155            - name
156
157mcast-groups:
158  list:
159    -
160      name: ovs_datapath
161