GNU Linux-libre 6.9.1-gnu
[releases.git] / Documentation / netlink / specs / ovs_vport.yaml
1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3 name: ovs_vport
4 version: 2
5 protocol: genetlink-legacy
6 uapi-header: linux/openvswitch.h
7
8 doc:
9   OVS vport configuration over generic netlink.
10
11 definitions:
12   -
13     name: ovs-header
14     type: struct
15     members:
16       -
17         name: dp-ifindex
18         type: u32
19   -
20     name: vport-type
21     type: enum
22     enum-name: ovs-vport-type
23     name-prefix: ovs-vport-type-
24     entries: [ unspec, netdev, internal, gre, vxlan, geneve ]
25   -
26     name: vport-stats
27     type: struct
28     enum-name: ovs-vport-stats
29     members:
30       -
31         name: rx-packets
32         type: u64
33       -
34         name: tx-packets
35         type: u64
36       -
37         name: rx-bytes
38         type: u64
39       -
40         name: tx-bytes
41         type: u64
42       -
43         name: rx-errors
44         type: u64
45       -
46         name: tx-errors
47         type: u64
48       -
49         name: rx-dropped
50         type: u64
51       -
52         name: tx-dropped
53         type: u64
54
55 attribute-sets:
56   -
57     name: vport-options
58     enum-name: ovs-vport-options
59     name-prefix: ovs-tunnel-attr-
60     attributes:
61       -
62         name: dst-port
63         type: u32
64       -
65         name: extension
66         type: u32
67   -
68     name: upcall-stats
69     enum-name: ovs-vport-upcall-attr
70     name-prefix: ovs-vport-upcall-attr-
71     attributes:
72       -
73         name: success
74         type: u64
75         value: 0
76       -
77         name: fail
78         type: u64
79   -
80     name: vport
81     name-prefix: ovs-vport-attr-
82     enum-name: ovs-vport-attr
83     attributes:
84       -
85         name: unspec
86         type: unused
87         value: 0
88       -
89         name: port-no
90         type: u32
91       -
92         name: type
93         type: u32
94         enum: vport-type
95       -
96         name: name
97         type: string
98       -
99         name: options
100         type: nest
101         nested-attributes: vport-options
102       -
103         name: upcall-pid
104         type: binary
105         sub-type: u32
106       -
107         name: stats
108         type: binary
109         struct: vport-stats
110       -
111         name: pad
112         type: unused
113       -
114         name: ifindex
115         type: u32
116       -
117         name: netnsid
118         type: u32
119       -
120         name: upcall-stats
121         type: nest
122         nested-attributes: upcall-stats
123
124 operations:
125   name-prefix: ovs-vport-cmd-
126   list:
127     -
128       name: new
129       doc: Create a new OVS vport
130       attribute-set: vport
131       fixed-header: ovs-header
132       do:
133         request:
134           attributes:
135             - name
136             - type
137             - upcall-pid
138             - ifindex
139             - options
140     -
141       name: del
142       doc: Delete existing OVS vport from a data path
143       attribute-set: vport
144       fixed-header: ovs-header
145       do:
146         request:
147           attributes:
148             - port-no
149             - type
150             - name
151     -
152       name: get
153       doc: Get / dump OVS vport configuration and state
154       attribute-set: vport
155       fixed-header: ovs-header
156       do: &vport-get-op
157         request:
158           attributes:
159             - name
160         reply: &dev-all
161           attributes:
162             - port-no
163             - type
164             - name
165             - upcall-pid
166             - stats
167             - ifindex
168             - netnsid
169             - upcall-stats
170       dump: *vport-get-op
171
172 mcast-groups:
173   list:
174     -
175       name: ovs_vport