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-2022 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_PF_INFO LOGLEV(3, 45, 0) /* packet filter informational messages */ 94 #define D_IFCONFIG LOGLEV(3, 0, 0) /* show ifconfig info (don't mute) */ 95 96 #define D_SHOW_PARMS LOGLEV(4, 50, 0) /* show all parameters on program initiation */ 97 #define D_SHOW_OCC LOGLEV(4, 51, 0) /* show options compatibility string */ 98 #define D_LOW LOGLEV(4, 52, 0) /* miscellaneous low-frequency debug info */ 99 #define D_DHCP_OPT LOGLEV(4, 53, 0) /* show DHCP options binary string */ 100 #define D_MBUF LOGLEV(4, 54, 0) /* mbuf.[ch] routines */ 101 #define D_PACKET_TRUNC_ERR LOGLEV(4, 55, 0) /* PACKET_TRUNCATION_CHECK */ 102 #define D_PF_DROPPED LOGLEV(4, 56, 0) /* packet filter dropped a packet */ 103 #define D_MULTI_DROPPED LOGLEV(4, 57, 0) /* show point-to-multipoint packet drops */ 104 #define D_MULTI_MEDIUM LOGLEV(4, 58, 0) /* show medium frequency multi messages */ 105 #define D_X509_ATTR LOGLEV(4, 59, 0) /* show x509-track attributes on connection */ 106 #define D_INIT_MEDIUM LOGLEV(4, 60, 0) /* show medium frequency init messages */ 107 #define D_MTU_INFO LOGLEV(4, 61, 0) /* show terse MTU info */ 108 #define D_PID_DEBUG_LOW LOGLEV(4, 63, 0) /* show low-freq packet-id debugging info */ 109 #define D_PID_DEBUG_MEDIUM LOGLEV(4, 64, 0) /* show medium-freq packet-id debugging info */ 110 111 #define D_LOG_RW LOGLEV(5, 0, 0) /* Print 'R' or 'W' to stdout for read/write */ 112 113 #define D_RTNL LOGLEV(6, 68, M_DEBUG) /* show RTNL low level operations */ 114 #define D_LINK_RW LOGLEV(6, 69, M_DEBUG) /* show TCP/UDP reads/writes (terse) */ 115 #define D_TUN_RW LOGLEV(6, 69, M_DEBUG) /* show TUN/TAP reads/writes */ 116 #define D_TAP_WIN_DEBUG LOGLEV(6, 69, M_DEBUG) /* show TAP-Windows driver debug info */ 117 #define D_CLIENT_NAT LOGLEV(6, 69, M_DEBUG) /* show client NAT debug info */ 118 119 #define D_SHOW_KEYS LOGLEV(7, 70, M_DEBUG) /* show data channel encryption keys */ 120 #define D_SHOW_KEY_SOURCE LOGLEV(7, 70, M_DEBUG) /* show data channel key source entropy */ 121 #define D_REL_LOW LOGLEV(7, 70, M_DEBUG) /* show low frequency info from reliable layer */ 122 #define D_FRAG_DEBUG LOGLEV(7, 70, M_DEBUG) /* show fragment debugging info */ 123 #define D_WIN32_IO_LOW LOGLEV(7, 70, M_DEBUG) /* low freq win32 I/O debugging info */ 124 #define D_MTU_DEBUG LOGLEV(7, 70, M_DEBUG) /* show MTU debugging info */ 125 #define D_MULTI_DEBUG LOGLEV(7, 70, M_DEBUG) /* show medium-freq multi debugging info */ 126 #define D_MSS LOGLEV(7, 70, M_DEBUG) /* show MSS adjustments */ 127 #define D_COMP_LOW LOGLEV(7, 70, M_DEBUG) /* show adaptive compression state changes */ 128 #define D_CONNECTION_LIST LOGLEV(7, 70, M_DEBUG) /* show <connection> list info */ 129 #define D_SCRIPT LOGLEV(7, 70, M_DEBUG) /* show parms & env vars passed to scripts */ 130 #define D_SHOW_NET LOGLEV(7, 70, M_DEBUG) /* show routing table and adapter list */ 131 #define D_ROUTE_DEBUG LOGLEV(7, 70, M_DEBUG) /* show verbose route.[ch] output */ 132 #define D_TLS_STATE_ERRORS LOGLEV(7, 70, M_DEBUG) /* no TLS state for client */ 133 #define D_SEMAPHORE_LOW LOGLEV(7, 70, M_DEBUG) /* show Win32 semaphore waits (low freq) */ 134 #define D_SEMAPHORE LOGLEV(7, 70, M_DEBUG) /* show Win32 semaphore waits */ 135 #define D_TEST_FILE LOGLEV(7, 70, M_DEBUG) /* show test_file() calls */ 136 #define D_MANAGEMENT_DEBUG LOGLEV(3, 70, M_DEBUG) /* show --management debug info */ 137 #define D_PLUGIN_DEBUG LOGLEV(7, 70, M_DEBUG) /* show verbose plugin calls */ 138 #define D_SOCKET_DEBUG LOGLEV(7, 70, M_DEBUG) /* show socket.[ch] debugging info */ 139 #define D_SHOW_PKCS11 LOGLEV(7, 70, M_DEBUG) /* show PKCS#11 actions */ 140 #define D_ALIGN_DEBUG LOGLEV(7, 70, M_DEBUG) /* show verbose struct alignment info */ 141 #define D_PACKET_TRUNC_DEBUG LOGLEV(7, 70, M_DEBUG) /* PACKET_TRUNCATION_CHECK verbose */ 142 #define D_PING LOGLEV(7, 70, M_DEBUG) /* PING send/receive messages */ 143 #define D_PS_PROXY_DEBUG LOGLEV(7, 70, M_DEBUG) /* port share proxy debug */ 144 #define D_TLS_KEYSELECT LOGLEV(7, 70, M_DEBUG) /* show information on key selection for data channel */ 145 #define D_ARGV_PARSE_CMD LOGLEV(7, 70, M_DEBUG) /* show parse_line() errors in argv_parse_cmd */ 146 #define D_CRYPTO_DEBUG LOGLEV(7, 70, M_DEBUG) /* show detailed info from crypto.c routines */ 147 #define D_PID_DEBUG LOGLEV(7, 70, M_DEBUG) /* show packet-id debugging info */ 148 #define D_PF_DROPPED_BCAST LOGLEV(7, 71, M_DEBUG) /* packet filter dropped a broadcast packet */ 149 #define D_PF_DEBUG LOGLEV(7, 72, M_DEBUG) /* packet filter debugging, must also define PF_DEBUG in pf.h */ 150 #define D_PUSH_DEBUG LOGLEV(7, 73, M_DEBUG) /* show push/pull debugging info */ 151 152 #define D_VLAN_DEBUG LOGLEV(7, 74, M_DEBUG) /* show VLAN tagging/untagging debug info */ 153 154 #define D_HANDSHAKE_VERBOSE LOGLEV(8, 70, M_DEBUG) /* show detailed description of each handshake */ 155 #define D_TLS_DEBUG_MED LOGLEV(8, 70, M_DEBUG) /* limited info from tls_session routines */ 156 #define D_INTERVAL LOGLEV(8, 70, M_DEBUG) /* show interval.h debugging info */ 157 #define D_SCHEDULER LOGLEV(8, 70, M_DEBUG) /* show scheduler debugging info */ 158 #define D_GREMLIN_VERBOSE LOGLEV(8, 70, M_DEBUG) /* show verbose info from gremlin module */ 159 #define D_REL_DEBUG LOGLEV(8, 70, M_DEBUG) /* show detailed info from reliable routines */ 160 #define D_EVENT_WAIT LOGLEV(8, 70, M_DEBUG) /* show detailed info from event waits */ 161 #define D_MULTI_TCP LOGLEV(8, 70, M_DEBUG) /* show debug info from mtcp.c */ 162 163 #define D_TLS_DEBUG LOGLEV(9, 70, M_DEBUG) /* show detailed info from TLS routines */ 164 #define D_COMP LOGLEV(9, 70, M_DEBUG) /* show compression info */ 165 #define D_READ_WRITE LOGLEV(9, 70, M_DEBUG) /* show all tun/tcp/udp reads/writes/opens */ 166 #define D_PACKET_CONTENT LOGLEV(9, 70, M_DEBUG) /* show before/after encryption packet content */ 167 #define D_TLS_NO_SEND_KEY LOGLEV(9, 70, M_DEBUG) /* show when no data channel send-key exists */ 168 #define D_PID_PERSIST_DEBUG LOGLEV(9, 70, M_DEBUG) /* show packet-id persist debugging info */ 169 #define D_LINK_RW_VERBOSE LOGLEV(9, 70, M_DEBUG) /* show link reads/writes with greater verbosity */ 170 #define D_STREAM_DEBUG LOGLEV(9, 70, M_DEBUG) /* show TCP stream debug info */ 171 #define D_WIN32_IO LOGLEV(9, 70, M_DEBUG) /* win32 I/O debugging info */ 172 #define D_PKCS11_DEBUG LOGLEV(9, 70, M_DEBUG) /* show PKCS#11 debugging */ 173 174 #define D_SHAPER_DEBUG LOGLEV(10, 70, M_DEBUG) /* show traffic shaper info */ 175 176 #define D_REGISTRY LOGLEV(11, 70, M_DEBUG) /* win32 registry debugging info */ 177 #define D_OPENSSL_LOCK LOGLEV(11, 70, M_DEBUG) /* show OpenSSL locks */ 178 179 /*#define D_THREAD_DEBUG LOGLEV(4, 70, M_DEBUG)*/ /* show pthread debug information */ 180 181 #endif /* ifndef ERRLEVEL_H */ 182