xref: /linux/include/uapi/linux/ovpn.h (revision 91a4855d6c03e770e42f17c798a36a3c46e63de2)
1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2 /* Do not edit directly, auto-generated from: */
3 /*	Documentation/netlink/specs/ovpn.yaml */
4 /* YNL-GEN uapi header */
5 /* To regenerate run: tools/net/ynl/ynl-regen.sh */
6 
7 #ifndef _UAPI_LINUX_OVPN_H
8 #define _UAPI_LINUX_OVPN_H
9 
10 #define OVPN_FAMILY_NAME	"ovpn"
11 #define OVPN_FAMILY_VERSION	1
12 
13 #define OVPN_NONCE_TAIL_SIZE	8
14 
15 enum ovpn_cipher_alg {
16 	OVPN_CIPHER_ALG_NONE,
17 	OVPN_CIPHER_ALG_AES_GCM,
18 	OVPN_CIPHER_ALG_CHACHA20_POLY1305,
19 };
20 
21 enum ovpn_del_peer_reason {
22 	OVPN_DEL_PEER_REASON_TEARDOWN,
23 	OVPN_DEL_PEER_REASON_USERSPACE,
24 	OVPN_DEL_PEER_REASON_EXPIRED,
25 	OVPN_DEL_PEER_REASON_TRANSPORT_ERROR,
26 	OVPN_DEL_PEER_REASON_TRANSPORT_DISCONNECT,
27 };
28 
29 enum ovpn_key_slot {
30 	OVPN_KEY_SLOT_PRIMARY,
31 	OVPN_KEY_SLOT_SECONDARY,
32 };
33 
34 enum {
35 	OVPN_A_PEER_ID = 1,
36 	OVPN_A_PEER_REMOTE_IPV4,
37 	OVPN_A_PEER_REMOTE_IPV6,
38 	OVPN_A_PEER_REMOTE_IPV6_SCOPE_ID,
39 	OVPN_A_PEER_REMOTE_PORT,
40 	OVPN_A_PEER_SOCKET,
41 	OVPN_A_PEER_SOCKET_NETNSID,
42 	OVPN_A_PEER_VPN_IPV4,
43 	OVPN_A_PEER_VPN_IPV6,
44 	OVPN_A_PEER_LOCAL_IPV4,
45 	OVPN_A_PEER_LOCAL_IPV6,
46 	OVPN_A_PEER_LOCAL_PORT,
47 	OVPN_A_PEER_KEEPALIVE_INTERVAL,
48 	OVPN_A_PEER_KEEPALIVE_TIMEOUT,
49 	OVPN_A_PEER_DEL_REASON,
50 	OVPN_A_PEER_VPN_RX_BYTES,
51 	OVPN_A_PEER_VPN_TX_BYTES,
52 	OVPN_A_PEER_VPN_RX_PACKETS,
53 	OVPN_A_PEER_VPN_TX_PACKETS,
54 	OVPN_A_PEER_LINK_RX_BYTES,
55 	OVPN_A_PEER_LINK_TX_BYTES,
56 	OVPN_A_PEER_LINK_RX_PACKETS,
57 	OVPN_A_PEER_LINK_TX_PACKETS,
58 	OVPN_A_PEER_TX_ID,
59 
60 	__OVPN_A_PEER_MAX,
61 	OVPN_A_PEER_MAX = (__OVPN_A_PEER_MAX - 1)
62 };
63 
64 enum {
65 	OVPN_A_KEYCONF_PEER_ID = 1,
66 	OVPN_A_KEYCONF_SLOT,
67 	OVPN_A_KEYCONF_KEY_ID,
68 	OVPN_A_KEYCONF_CIPHER_ALG,
69 	OVPN_A_KEYCONF_ENCRYPT_DIR,
70 	OVPN_A_KEYCONF_DECRYPT_DIR,
71 
72 	__OVPN_A_KEYCONF_MAX,
73 	OVPN_A_KEYCONF_MAX = (__OVPN_A_KEYCONF_MAX - 1)
74 };
75 
76 enum {
77 	OVPN_A_KEYDIR_CIPHER_KEY = 1,
78 	OVPN_A_KEYDIR_NONCE_TAIL,
79 
80 	__OVPN_A_KEYDIR_MAX,
81 	OVPN_A_KEYDIR_MAX = (__OVPN_A_KEYDIR_MAX - 1)
82 };
83 
84 enum {
85 	OVPN_A_IFINDEX = 1,
86 	OVPN_A_PEER,
87 	OVPN_A_KEYCONF,
88 
89 	__OVPN_A_MAX,
90 	OVPN_A_MAX = (__OVPN_A_MAX - 1)
91 };
92 
93 enum {
94 	OVPN_CMD_PEER_NEW = 1,
95 	OVPN_CMD_PEER_SET,
96 	OVPN_CMD_PEER_GET,
97 	OVPN_CMD_PEER_DEL,
98 	OVPN_CMD_PEER_DEL_NTF,
99 	OVPN_CMD_KEY_NEW,
100 	OVPN_CMD_KEY_GET,
101 	OVPN_CMD_KEY_SWAP,
102 	OVPN_CMD_KEY_SWAP_NTF,
103 	OVPN_CMD_KEY_DEL,
104 	OVPN_CMD_PEER_FLOAT_NTF,
105 
106 	__OVPN_CMD_MAX,
107 	OVPN_CMD_MAX = (__OVPN_CMD_MAX - 1)
108 };
109 
110 #define OVPN_MCGRP_PEERS	"peers"
111 
112 #endif /* _UAPI_LINUX_OVPN_H */
113