OpenVPN
errlevel.h
Go to the documentation of this file.
1/*
2 * OpenVPN -- An application to securely tunnel IP networks
3 * over a single TCP/UDP port, with support for SSL/TLS-based
4 * session authentication and key exchange,
5 * packet encryption, packet authentication, and
6 * packet compression.
7 *
8 * Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 */
23
24#ifndef ERRLEVEL_H
25#define ERRLEVEL_H
26
27#include "error.h"
28
29/*
30 * Debug level at and above where we
31 * display time to microsecond resolution.
32 */
33#define DEBUG_LEVEL_USEC_TIME 4
34
35/*
36 * In non-server modes, delay n milliseconds after certain kinds
37 * of non-fatal network errors to avoid a barrage of errors.
38 *
39 * To disable all delays, set to 0.
40 */
41#define P2P_ERROR_DELAY_MS 0
42
43/*
44 * Enable D_LOG_RW
45 */
46#define LOG_RW
47
48/*
49 * Debugging levels for various kinds
50 * of output.
51 */
52
53#define M_VERB0 LOGLEV(0, 0, 0) /* Messages displayed even at --verb 0 (fatal errors only) */
54
55#define M_INFO LOGLEV(1, 0, 0) /* default informational messages */
56
57#define D_LINK_ERRORS LOGLEV(1, 1, M_NONFATAL) /* show link errors from main event loop */
58#define D_CRYPT_ERRORS LOGLEV(1, 2, M_NONFATAL) /* show errors from encrypt/decrypt */
59#define D_TLS_ERRORS LOGLEV(1, 3, M_NONFATAL) /* show TLS control channel errors */
60#define D_RESOLVE_ERRORS LOGLEV(1, 4, M_NONFATAL) /* show hostname resolve errors */
61#define D_COMP_ERRORS LOGLEV(1, 5, M_NONFATAL) /* show compression errors */
62#define D_REPLAY_ERRORS LOGLEV(1, 6, M_NONFATAL) /* show packet replay errors */
63#define D_STREAM_ERRORS LOGLEV(1, 7, M_NONFATAL) /* TCP stream error requiring restart */
64#define D_IMPORT_ERRORS LOGLEV(1, 8, M_NONFATAL) /* show server import option errors */
65#define D_MULTI_ERRORS LOGLEV(1, 9, M_NONFATAL) /* show multi-client server errors */
66#define D_EVENT_ERRORS LOGLEV(1, 10, M_NONFATAL) /* show event.[ch] errors */
67#define D_PUSH_ERRORS LOGLEV(1, 11, M_NONFATAL) /* show push/pull errors */
68#define D_PID_PERSIST LOGLEV(1, 12, M_NONFATAL) /* show packet_id persist errors */
69#define D_FRAG_ERRORS LOGLEV(1, 13, M_NONFATAL) /* show fragmentation errors */
70#define D_ALIGN_ERRORS LOGLEV(1, 14, M_NONFATAL) /* show bad struct alignments */
71
72#define D_HANDSHAKE LOGLEV(2, 20, 0) /* show data & control channel handshakes */
73#define D_CLOSE LOGLEV(2, 22, 0) /* show socket and TUN/TAP close */
74#define D_PROXY LOGLEV(2, 24, 0) /* show http proxy control packets */
75#define D_ARGV LOGLEV(2, 25, 0) /* show struct argv errors */
76
77#define D_TLS_DEBUG_LOW LOGLEV(3, 20, 0) /* low frequency info from tls_session routines */
78#define D_GREMLIN LOGLEV(3, 30, 0) /* show simulated outage info from gremlin module */
79#define D_GENKEY LOGLEV(3, 31, 0) /* print message after key generation */
80#define D_ROUTE LOGLEV(3, 0, 0) /* show routes added and deleted (don't mute) */
81#define D_TUNTAP_INFO LOGLEV(3, 32, 0) /* show debugging info from TUN/TAP driver */
82#define D_RESTART LOGLEV(3, 33, 0) /* show certain restart messages */
83#define D_PUSH LOGLEV(3, 34, 0) /* show push/pull info */
84#define D_IFCONFIG_POOL LOGLEV(3, 35, 0) /* show ifconfig pool info */
85#define D_AUTH LOGLEV(3, 37, 0) /* show user/pass auth info */
86#define D_MULTI_LOW LOGLEV(3, 38, 0) /* show point-to-multipoint low-freq debug info */
87#define D_PLUGIN LOGLEV(3, 39, 0) /* show plugin calls */
88#define D_MANAGEMENT LOGLEV(3, 40, 0) /* show --management info */
89#define D_SCHED_EXIT LOGLEV(3, 41, 0) /* show arming of scheduled exit */
90#define D_ROUTE_QUOTA LOGLEV(3, 42, 0) /* show route quota exceeded messages */
91#define D_OSBUF LOGLEV(3, 43, 0) /* show socket/tun/tap buffer sizes */
92#define D_PS_PROXY LOGLEV(3, 44, 0) /* messages related to --port-share option */
93#define D_IFCONFIG LOGLEV(3, 0, 0) /* show ifconfig info (don't mute) */
94#define D_DCO LOGLEV(3, 0, 0) /* show DCO related messages */
95
96#define D_SHOW_PARMS LOGLEV(4, 50, 0) /* show all parameters on program initiation */
97#define D_LOW LOGLEV(4, 52, 0) /* miscellaneous low-frequency debug info */
98#define D_DHCP_OPT LOGLEV(4, 53, 0) /* show DHCP options binary string */
99#define D_MBUF LOGLEV(4, 54, 0) /* mbuf.[ch] routines */
100#define D_PACKET_TRUNC_ERR LOGLEV(4, 55, 0) /* PACKET_TRUNCATION_CHECK */
101#define D_MULTI_DROPPED LOGLEV(4, 57, 0) /* show point-to-multipoint packet drops */
102#define D_MULTI_MEDIUM LOGLEV(4, 58, 0) /* show medium frequency multi messages */
103#define D_X509_ATTR LOGLEV(4, 59, 0) /* show x509-track attributes on connection */
104#define D_INIT_MEDIUM LOGLEV(4, 60, 0) /* show medium frequency init messages */
105#define D_MTU_INFO LOGLEV(4, 61, 0) /* show terse MTU info */
106#define D_PID_DEBUG_LOW LOGLEV(4, 63, 0) /* show low-freq packet-id debugging info */
107#define D_PID_DEBUG_MEDIUM LOGLEV(4, 64, 0) /* show medium-freq packet-id debugging info */
108#define D_CIPHER_INIT LOGLEV(4, 65, 0) /* show messages about cipher init */
109
110#define D_LOG_RW LOGLEV(5, 0, 0) /* Print 'R' or 'W' to stdout for read/write */
111
112#define D_RTNL LOGLEV(6, 68, M_DEBUG) /* show RTNL low level operations */
113#define D_LINK_RW LOGLEV(6, 69, M_DEBUG) /* show TCP/UDP reads/writes (terse) */
114#define D_TUN_RW LOGLEV(6, 69, M_DEBUG) /* show TUN/TAP reads/writes */
115#define D_TAP_WIN_DEBUG LOGLEV(6, 69, M_DEBUG) /* show TAP-Windows driver debug info */
116#define D_CLIENT_NAT LOGLEV(6, 69, M_DEBUG) /* show client NAT debug info */
117#define D_XKEY LOGLEV(6, 69, M_DEBUG) /* show xkey-provider debug info */
118#define D_DCO_DEBUG LOGLEV(6, 69, M_DEBUG) /* show DCO related lowlevel debug messages */
119#define D_SIGNAL_DEBUG LOGLEV(6, 69, M_DEBUG) /* show signal related debug messages */
120
121#define D_SHOW_KEYS LOGLEV(7, 70, M_DEBUG) /* show data channel encryption keys */
122#define D_SHOW_KEY_SOURCE LOGLEV(7, 70, M_DEBUG) /* show data channel key source entropy */
123#define D_REL_LOW LOGLEV(7, 70, M_DEBUG) /* show low frequency info from reliable layer */
124#define D_FRAG_DEBUG LOGLEV(7, 70, M_DEBUG) /* show fragment debugging info */
125#define D_WIN32_IO_LOW LOGLEV(7, 70, M_DEBUG) /* low freq win32 I/O debugging info */
126#define D_MTU_DEBUG LOGLEV(7, 70, M_DEBUG) /* show MTU debugging info */
127#define D_MULTI_DEBUG LOGLEV(7, 70, M_DEBUG) /* show medium-freq multi debugging info */
128#define D_MSS LOGLEV(7, 70, M_DEBUG) /* show MSS adjustments */
129#define D_COMP_LOW LOGLEV(7, 70, M_DEBUG) /* show adaptive compression state changes */
130#define D_CONNECTION_LIST LOGLEV(7, 70, M_DEBUG) /* show <connection> list info */
131#define D_SCRIPT LOGLEV(7, 70, M_DEBUG) /* show parms & env vars passed to scripts */
132#define D_SHOW_NET LOGLEV(7, 70, M_DEBUG) /* show routing table and adapter list */
133#define D_ROUTE_DEBUG LOGLEV(7, 70, M_DEBUG) /* show verbose route.[ch] output */
134#define D_TLS_STATE_ERRORS LOGLEV(7, 70, M_DEBUG) /* no TLS state for client */
135#define D_SEMAPHORE_LOW LOGLEV(7, 70, M_DEBUG) /* show Win32 semaphore waits (low freq) */
136#define D_SEMAPHORE LOGLEV(7, 70, M_DEBUG) /* show Win32 semaphore waits */
137#define D_TEST_FILE LOGLEV(7, 70, M_DEBUG) /* show test_file() calls */
138#define D_MANAGEMENT_DEBUG LOGLEV(3, 70, M_DEBUG) /* show --management debug info */
139#define D_PLUGIN_DEBUG LOGLEV(7, 70, M_DEBUG) /* show verbose plugin calls */
140#define D_SOCKET_DEBUG LOGLEV(7, 70, M_DEBUG) /* show socket.[ch] debugging info */
141#define D_SHOW_PKCS11 LOGLEV(7, 70, M_DEBUG) /* show PKCS#11 actions */
142#define D_ALIGN_DEBUG LOGLEV(7, 70, M_DEBUG) /* show verbose struct alignment info */
143#define D_PACKET_TRUNC_DEBUG LOGLEV(7, 70, M_DEBUG) /* PACKET_TRUNCATION_CHECK verbose */
144#define D_PING LOGLEV(7, 70, M_DEBUG) /* PING send/receive messages */
145#define D_PS_PROXY_DEBUG LOGLEV(7, 70, M_DEBUG) /* port share proxy debug */
146#define D_TLS_KEYSELECT LOGLEV(7, 70, M_DEBUG) /* show information on key selection for data channel */
147#define D_ARGV_PARSE_CMD LOGLEV(7, 70, M_DEBUG) /* show parse_line() errors in argv_parse_cmd */
148#define D_CRYPTO_DEBUG LOGLEV(7, 70, M_DEBUG) /* show detailed info from crypto.c routines */
149#define D_PID_DEBUG LOGLEV(7, 70, M_DEBUG) /* show packet-id debugging info */
150#define D_PUSH_DEBUG LOGLEV(7, 73, M_DEBUG) /* show push/pull debugging info */
151#define D_SHOW_OCC LOGLEV(7, 74, M_DEBUG) /* show options compatibility string */
152
153
154#define D_VLAN_DEBUG LOGLEV(7, 74, M_DEBUG) /* show VLAN tagging/untagging debug info */
155
156#define D_HANDSHAKE_VERBOSE LOGLEV(8, 70, M_DEBUG) /* show detailed description of each handshake */
157#define D_TLS_DEBUG_MED LOGLEV(8, 70, M_DEBUG) /* limited info from tls_session routines */
158#define D_INTERVAL LOGLEV(8, 70, M_DEBUG) /* show interval.h debugging info */
159#define D_SCHEDULER LOGLEV(8, 70, M_DEBUG) /* show scheduler debugging info */
160#define D_GREMLIN_VERBOSE LOGLEV(8, 70, M_DEBUG) /* show verbose info from gremlin module */
161#define D_REL_DEBUG LOGLEV(8, 70, M_DEBUG) /* show detailed info from reliable routines */
162#define D_EVENT_WAIT LOGLEV(8, 70, M_DEBUG) /* show detailed info from event waits */
163#define D_MULTI_TCP LOGLEV(8, 70, M_DEBUG) /* show debug info from mtcp.c */
164
165#define D_TLS_DEBUG LOGLEV(9, 70, M_DEBUG) /* show detailed info from TLS routines */
166#define D_COMP LOGLEV(9, 70, M_DEBUG) /* show compression info */
167#define D_READ_WRITE LOGLEV(9, 70, M_DEBUG) /* show all tun/tcp/udp reads/writes/opens */
168#define D_PACKET_CONTENT LOGLEV(9, 70, M_DEBUG) /* show before/after encryption packet content */
169#define D_TLS_NO_SEND_KEY LOGLEV(9, 70, M_DEBUG) /* show when no data channel send-key exists */
170#define D_PID_PERSIST_DEBUG LOGLEV(9, 70, M_DEBUG) /* show packet-id persist debugging info */
171#define D_LINK_RW_VERBOSE LOGLEV(9, 70, M_DEBUG) /* show link reads/writes with greater verbosity */
172#define D_STREAM_DEBUG LOGLEV(9, 70, M_DEBUG) /* show TCP stream debug info */
173#define D_WIN32_IO LOGLEV(9, 70, M_DEBUG) /* win32 I/O debugging info */
174#define D_PKCS11_DEBUG LOGLEV(9, 70, M_DEBUG) /* show PKCS#11 debugging */
175
176#define D_SHAPER_DEBUG LOGLEV(10, 70, M_DEBUG) /* show traffic shaper info */
177
178#define D_REGISTRY LOGLEV(11, 70, M_DEBUG) /* win32 registry debugging info */
179#define D_OPENSSL_LOCK LOGLEV(11, 70, M_DEBUG) /* show OpenSSL locks */
180
181/*#define D_THREAD_DEBUG LOGLEV(4, 70, M_DEBUG)*/ /* show pthread debug information */
182
183#endif /* ifndef ERRLEVEL_H */