OpenVPN 3 Core Library
Loading...
Searching...
No Matches
ovpn_dco_linux.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: (GPL-2.0-only WITH Linux-syscall-note) OR MIT */
2/*
3 * OpenVPN data channel accelerator
4 *
5 * Copyright (C) 2019-2023 OpenVPN, Inc.
6 *
7 * Author: James Yonan <james@openvpn.net>
8 * Antonio Quartulli <antonio@openvpn.net>
9 */
10
11#ifndef _UAPI_LINUX_OVPN_DCO_H_
12#define _UAPI_LINUX_OVPN_DCO_H_
13
14#define OVPN_NL_NAME "ovpn-dco-v2"
15
16#define OVPN_NL_MULTICAST_GROUP_PEERS "peers"
17
20
23enum ovpn_nl_commands {
27 OVPN_CMD_UNSPEC = 0,
28
32 OVPN_CMD_NEW_PEER,
33
37 OVPN_CMD_SET_PEER,
38
42 OVPN_CMD_DEL_PEER,
43
44 OVPN_CMD_NEW_KEY,
45
46 OVPN_CMD_SWAP_KEYS,
47
48 OVPN_CMD_DEL_KEY,
49
53 OVPN_CMD_GET_PEER,
54};
55
56enum ovpn_cipher_alg {
69};
70
71enum ovpn_del_peer_reason {
72 __OVPN_DEL_PEER_REASON_FIRST,
73 OVPN_DEL_PEER_REASON_TEARDOWN = __OVPN_DEL_PEER_REASON_FIRST,
74 OVPN_DEL_PEER_REASON_USERSPACE,
75 OVPN_DEL_PEER_REASON_EXPIRED,
76 OVPN_DEL_PEER_REASON_TRANSPORT_ERROR,
77 OVPN_DEL_PEER_REASON_TRANSPORT_DISCONNECT,
78 __OVPN_DEL_PEER_REASON_AFTER_LAST
79};
80
81enum ovpn_key_slot {
82 __OVPN_KEY_SLOT_FIRST,
83 OVPN_KEY_SLOT_PRIMARY = __OVPN_KEY_SLOT_FIRST,
85 __OVPN_KEY_SLOT_AFTER_LAST,
86};
87
88enum ovpn_netlink_attrs {
89 OVPN_ATTR_UNSPEC = 0,
90 OVPN_ATTR_IFINDEX,
91 OVPN_ATTR_NEW_PEER,
92 OVPN_ATTR_SET_PEER,
93 OVPN_ATTR_DEL_PEER,
94 OVPN_ATTR_NEW_KEY,
95 OVPN_ATTR_SWAP_KEYS,
96 OVPN_ATTR_DEL_KEY,
97 OVPN_ATTR_GET_PEER,
98
99 __OVPN_ATTR_AFTER_LAST,
100 OVPN_ATTR_MAX = __OVPN_ATTR_AFTER_LAST - 1,
101};
102
103enum ovpn_netlink_key_dir_attrs {
104 OVPN_KEY_DIR_ATTR_UNSPEC = 0,
105 OVPN_KEY_DIR_ATTR_CIPHER_KEY,
106 OVPN_KEY_DIR_ATTR_NONCE_TAIL,
107
108 __OVPN_KEY_DIR_ATTR_AFTER_LAST,
109 OVPN_KEY_DIR_ATTR_MAX = __OVPN_KEY_DIR_ATTR_AFTER_LAST - 1,
110};
111
112enum ovpn_netlink_new_key_attrs {
113 OVPN_NEW_KEY_ATTR_UNSPEC = 0,
114 OVPN_NEW_KEY_ATTR_PEER_ID,
115 OVPN_NEW_KEY_ATTR_KEY_SLOT,
116 OVPN_NEW_KEY_ATTR_KEY_ID,
117 OVPN_NEW_KEY_ATTR_CIPHER_ALG,
118 OVPN_NEW_KEY_ATTR_ENCRYPT_KEY,
119 OVPN_NEW_KEY_ATTR_DECRYPT_KEY,
120
121 __OVPN_NEW_KEY_ATTR_AFTER_LAST,
122 OVPN_NEW_KEY_ATTR_MAX = __OVPN_NEW_KEY_ATTR_AFTER_LAST - 1,
123};
124
125enum ovpn_netlink_del_key_attrs {
126 OVPN_DEL_KEY_ATTR_UNSPEC = 0,
127 OVPN_DEL_KEY_ATTR_PEER_ID,
128 OVPN_DEL_KEY_ATTR_KEY_SLOT,
129
130 __OVPN_DEL_KEY_ATTR_AFTER_LAST,
131 OVPN_DEL_KEY_ATTR_MAX = __OVPN_DEL_KEY_ATTR_AFTER_LAST - 1,
132};
133
134enum ovpn_netlink_swap_keys_attrs {
135 OVPN_SWAP_KEYS_ATTR_UNSPEC = 0,
136 OVPN_SWAP_KEYS_ATTR_PEER_ID,
137
138 __OVPN_SWAP_KEYS_ATTR_AFTER_LAST,
139 OVPN_SWAP_KEYS_ATTR_MAX = __OVPN_SWAP_KEYS_ATTR_AFTER_LAST - 1,
140
141};
142
143enum ovpn_netlink_new_peer_attrs {
144 OVPN_NEW_PEER_ATTR_UNSPEC = 0,
145 OVPN_NEW_PEER_ATTR_PEER_ID,
146 OVPN_NEW_PEER_ATTR_SOCKADDR_REMOTE,
147 OVPN_NEW_PEER_ATTR_SOCKET,
148 OVPN_NEW_PEER_ATTR_IPV4,
149 OVPN_NEW_PEER_ATTR_IPV6,
150 OVPN_NEW_PEER_ATTR_LOCAL_IP,
151
152 __OVPN_NEW_PEER_ATTR_AFTER_LAST,
153 OVPN_NEW_PEER_ATTR_MAX = __OVPN_NEW_PEER_ATTR_AFTER_LAST - 1,
154};
155
156enum ovpn_netlink_set_peer_attrs {
157 OVPN_SET_PEER_ATTR_UNSPEC = 0,
158 OVPN_SET_PEER_ATTR_PEER_ID,
159 OVPN_SET_PEER_ATTR_KEEPALIVE_INTERVAL,
160 OVPN_SET_PEER_ATTR_KEEPALIVE_TIMEOUT,
161
162 __OVPN_SET_PEER_ATTR_AFTER_LAST,
163 OVPN_SET_PEER_ATTR_MAX = __OVPN_SET_PEER_ATTR_AFTER_LAST - 1,
164};
165
166enum ovpn_netlink_del_peer_attrs {
167 OVPN_DEL_PEER_ATTR_UNSPEC = 0,
168 OVPN_DEL_PEER_ATTR_REASON,
169 OVPN_DEL_PEER_ATTR_PEER_ID,
170
171 __OVPN_DEL_PEER_ATTR_AFTER_LAST,
172 OVPN_DEL_PEER_ATTR_MAX = __OVPN_DEL_PEER_ATTR_AFTER_LAST - 1,
173};
174
175enum ovpn_netlink_get_peer_attrs {
176 OVPN_GET_PEER_ATTR_UNSPEC = 0,
177 OVPN_GET_PEER_ATTR_PEER_ID,
178
179 __OVPN_GET_PEER_ATTR_AFTER_LAST,
180 OVPN_GET_PEER_ATTR_MAX = __OVPN_GET_PEER_ATTR_AFTER_LAST - 1,
181};
182
183enum ovpn_netlink_get_peer_response_attrs {
184 OVPN_GET_PEER_RESP_ATTR_UNSPEC = 0,
185 OVPN_GET_PEER_RESP_ATTR_PEER_ID,
186 OVPN_GET_PEER_RESP_ATTR_SOCKADDR_REMOTE,
187 OVPN_GET_PEER_RESP_ATTR_IPV4,
188 OVPN_GET_PEER_RESP_ATTR_IPV6,
189 OVPN_GET_PEER_RESP_ATTR_LOCAL_IP,
190 OVPN_GET_PEER_RESP_ATTR_LOCAL_PORT,
191 OVPN_GET_PEER_RESP_ATTR_KEEPALIVE_INTERVAL,
192 OVPN_GET_PEER_RESP_ATTR_KEEPALIVE_TIMEOUT,
193 OVPN_GET_PEER_RESP_ATTR_VPN_RX_BYTES,
194 OVPN_GET_PEER_RESP_ATTR_VPN_TX_BYTES,
195 OVPN_GET_PEER_RESP_ATTR_VPN_RX_PACKETS,
196 OVPN_GET_PEER_RESP_ATTR_VPN_TX_PACKETS,
197 OVPN_GET_PEER_RESP_ATTR_LINK_RX_BYTES,
198 OVPN_GET_PEER_RESP_ATTR_LINK_TX_BYTES,
199 OVPN_GET_PEER_RESP_ATTR_LINK_RX_PACKETS,
200 OVPN_GET_PEER_RESP_ATTR_LINK_TX_PACKETS,
201
202 __OVPN_GET_PEER_RESP_ATTR_AFTER_LAST,
203 OVPN_GET_PEER_RESP_ATTR_MAX = __OVPN_GET_PEER_RESP_ATTR_AFTER_LAST - 1,
204};
205
206enum ovpn_netlink_peer_stats_attrs {
207 OVPN_PEER_STATS_ATTR_UNSPEC = 0,
208 OVPN_PEER_STATS_BYTES,
209 OVPN_PEER_STATS_PACKETS,
210
211 __OVPN_PEER_STATS_ATTR_AFTER_LAST,
212 OVPN_PEER_STATS_ATTR_MAX = __OVPN_PEER_STATS_ATTR_AFTER_LAST - 1,
213};
214
215enum ovpn_netlink_peer_attrs {
216 OVPN_PEER_ATTR_UNSPEC = 0,
217 OVPN_PEER_ATTR_PEER_ID,
218 OVPN_PEER_ATTR_SOCKADDR_REMOTE,
219 OVPN_PEER_ATTR_IPV4,
220 OVPN_PEER_ATTR_IPV6,
221 OVPN_PEER_ATTR_LOCAL_IP,
222 OVPN_PEER_ATTR_KEEPALIVE_INTERVAL,
223 OVPN_PEER_ATTR_KEEPALIVE_TIMEOUT,
224 OVPN_PEER_ATTR_ENCRYPT_KEY,
225 OVPN_PEER_ATTR_DECRYPT_KEY,
226 OVPN_PEER_ATTR_RX_STATS,
227 OVPN_PEER_ATTR_TX_STATS,
228
229 __OVPN_PEER_ATTR_AFTER_LAST,
230 OVPN_PEER_ATTR_MAX = __OVPN_PEER_ATTR_AFTER_LAST - 1,
231};
232
233enum ovpn_netlink_packet_attrs {
234 OVPN_PACKET_ATTR_UNSPEC = 0,
235 OVPN_PACKET_ATTR_PACKET,
236 OVPN_PACKET_ATTR_PEER_ID,
237
238 __OVPN_PACKET_ATTR_AFTER_LAST,
239 OVPN_PACKET_ATTR_MAX = __OVPN_PACKET_ATTR_AFTER_LAST - 1,
240};
241
242enum ovpn_ifla_attrs {
243 IFLA_OVPN_UNSPEC = 0,
244 IFLA_OVPN_MODE,
245
246 __IFLA_OVPN_AFTER_LAST,
247 IFLA_OVPN_MAX = __IFLA_OVPN_AFTER_LAST - 1,
248};
249
250enum ovpn_mode {
251 __OVPN_MODE_FIRST = 0,
252 OVPN_MODE_P2P = __OVPN_MODE_FIRST,
253 OVPN_MODE_MP,
254
255 __OVPN_MODE_AFTER_LAST,
256};
257
259
260#endif /* _UAPI_LINUX_OVPN_DCO_H_ */
@ OVPN_CIPHER_ALG_CHACHA20_POLY1305
Definition ovpn-dco.h:104
@ OVPN_CIPHER_ALG_AES_GCM
Definition ovpn-dco.h:103
@ OVPN_CIPHER_ALG_NONE
Definition ovpn-dco.h:102
@ OVPN_KEY_SLOT_SECONDARY
Definition ovpn-dco.h:97
@ OVPN_KEY_SLOT_PRIMARY
Definition ovpn-dco.h:96