OpenVPN
dco_linux.h
Go to the documentation of this file.
1 /*
2  * Interface to linux dco networking code
3  *
4  * Copyright (C) 2020-2023 Antonio Quartulli <a@unstable.cc>
5  * Copyright (C) 2020-2023 Arne Schwabe <arne@rfc2549.org>
6  * Copyright (C) 2020-2023 OpenVPN Inc <sales@openvpn.net>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program (see the file COPYING included with this
19  * distribution); if not, write to the Free Software Foundation, Inc.,
20  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21  */
22 #ifndef DCO_LINUX_H
23 #define DCO_LINUX_H
24 
25 #if defined(ENABLE_DCO) && defined(TARGET_LINUX)
26 
27 #include "event.h"
28 
29 #include "ovpn_dco_linux.h"
30 
31 #include <netlink/socket.h>
32 #include <netlink/netlink.h>
33 
34 typedef enum ovpn_key_slot dco_key_slot_t;
35 typedef enum ovpn_cipher_alg dco_cipher_t;
36 
37 
38 typedef struct
39 {
40  struct nl_sock *nl_sock;
41  struct nl_cb *nl_cb;
42  int status;
43 
44  enum ovpn_mode ifmode;
45 
46  int ovpn_dco_id;
47  int ovpn_dco_mcast_id;
48 
49  unsigned int ifindex;
50 
51  int dco_message_type;
52  int dco_message_peer_id;
53  int dco_del_peer_reason;
54  uint64_t dco_read_bytes;
55  uint64_t dco_write_bytes;
57 
58 #endif /* defined(ENABLE_DCO) && defined(TARGET_LINUX) */
59 #endif /* ifndef DCO_LINUX_H */
ovpn_dco_linux.h
ovpn_key_slot
ovpn_key_slot
Definition: ovpn_dco_freebsd.h:47
dco_context_t
void * dco_context_t
Definition: dco.h:254
event.h
ovpn_cipher_alg
ovpn_cipher_alg
Definition: ovpn_dco_linux.h:54
status
static SERVICE_STATUS status
Definition: interactive.c:52
ovpn_mode
ovpn_mode
Definition: ovpn_dco_linux.h:248