2 * Constants for Black Box Log dissection
3 * Copyright 2022 Michael Tuexen <tuexen [AT] wireshark.org>
5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
9 * SPDX-License-Identifier: GPL-2.0-or-later
12 #ifndef __PACKET_BBLOG_H_
13 #define __PACKET_BBLOG_H_
16 * The t_state values used here are defined in
17 * https://cgit.freebsd.org/src/tree/sys/netinet/tcp_fsm.h
19 static const value_string tcp_state_values
[] = {
23 { 3, "SYN-RECEIVED" },
34 * The event types used here are defined in
35 * https://cgit.freebsd.org/src/tree/sys/netinet/tcp_log_buf.h
38 #define BBLOG_TCP_LOG_IN 1
39 #define BBLOG_TCP_LOG_OUT 2
40 /* Use a better name for the event used for various timer events */
41 #define BBLOG_TCP_LOG_TIMER 3
42 #define BBLOG_TCP_LOG_SB_WAKE 4
43 #define BBLOG_TCP_LOG_BAD_RETRAN 5
44 #define BBLOG_TCP_LOG_PRR 6
45 #define BBLOG_TCP_LOG_REORDER 7
46 #define BBLOG_TCP_LOG_HPTS 8
47 #define BBLOG_BBR_LOG_BBRUPD 9
48 #define BBLOG_BBR_LOG_BBRSND 10
49 #define BBLOG_BBR_LOG_ACKCLEAR 11
50 #define BBLOG_BBR_LOG_INQUEUE 12
51 #define BBLOG_BBR_LOG_TIMERSTAR 13
52 #define BBLOG_BBR_LOG_TIMERCANC 14
53 #define BBLOG_BBR_LOG_ENTREC 15
54 #define BBLOG_BBR_LOG_EXITREC 16
55 #define BBLOG_BBR_LOG_CWND 17
56 #define BBLOG_BBR_LOG_BWSAMP 18
57 #define BBLOG_BBR_LOG_MSGSIZE 19
58 #define BBLOG_BBR_LOG_BBRRTT 20
59 #define BBLOG_BBR_LOG_JUSTRET 21
60 #define BBLOG_BBR_LOG_STATE 22
61 #define BBLOG_BBR_LOG_PKT_EPOCH 23
62 #define BBLOG_BBR_LOG_PERSIST 24
63 #define BBLOG_TCP_LOG_FLOWEND 25
64 #define BBLOG_BBR_LOG_RTO 26
65 #define BBLOG_BBR_LOG_DOSEG_DONE 27
66 #define BBLOG_BBR_LOG_EXIT_GAIN 28
67 #define BBLOG_BBR_LOG_THRESH_CALC 29
68 #define BBLOG_TCP_LOG_MAPCHG 30
69 #define BBLOG_TCP_LOG_USERSEND 31
70 #define BBLOG_BBR_RSM_CLEARED 32
71 #define BBLOG_BBR_LOG_STATE_TARGET 33
72 #define BBLOG_BBR_LOG_TIME_EPOCH 34
73 #define BBLOG_BBR_LOG_TO_PROCESS 35
74 #define BBLOG_BBR_LOG_BBRTSO 36
75 #define BBLOG_BBR_LOG_HPTSDIAG 37
76 #define BBLOG_BBR_LOG_LOWGAIN 38
77 #define BBLOG_BBR_LOG_PROGRESS 39
78 #define BBLOG_TCP_LOG_SOCKET_OPT 40
79 #define BBLOG_BBR_LOG_TIMERPREP 41
80 #define BBLOG_BBR_LOG_ENOBUF_JMP 42
81 #define BBLOG_BBR_LOG_HPTSI_CALC 43
82 #define BBLOG_BBR_LOG_RTT_SHRINKS 44
83 #define BBLOG_BBR_LOG_BW_RED_EV 45
84 #define BBLOG_BBR_LOG_REDUCE 46
85 #define BBLOG_TCP_LOG_RTT 47
86 #define BBLOG_BBR_LOG_SETTINGS_CHG 48
87 #define BBLOG_BBR_LOG_SRTT_GAIN_EVENT 49
88 #define BBLOG_TCP_LOG_REASS 50
89 #define BBLOG_TCP_HDWR_TLS 51
90 #define BBLOG_BBR_LOG_HDWR_PACE 52
91 #define BBLOG_BBR_LOG_TSTMP_VAL 53
92 #define BBLOG_TCP_LOG_CONNEND 54
93 #define BBLOG_TCP_LOG_LRO 55
94 #define BBLOG_TCP_SACK_FILTER_RES 56
95 #define BBLOG_TCP_SAD_DETECTION 57
96 #define BBLOG_TCP_TIMELY_WORK 58
97 #define BBLOG_TCP_LOG_USER_EVENT 59
98 #define BBLOG_TCP_LOG_SENDFILE 60
99 #define BBLOG_TCP_LOG_HTTP_T 61
100 #define BBLOG_TCP_LOG_ACCOUNTING 62
101 #define BBLOG_TCP_LOG_FSB 63
102 #define BBLOG_RACK_DSACK_HANDLING 64
103 #define BBLOG_TCP_HYSTART 65
104 #define BBLOG_TCP_CHG_QUERY 66
105 #define BBLOG_TCP_RACK_LOG_COLLAPSE 67
106 #define TCP_RACK_TP_TRIGGERED 68
107 #define TCP_HYBRID_PACING_LOG 69
108 #define TCP_LOG_PRU 70
109 #define BBLOG_TCP_LOG_END 71
111 static const value_string event_identifier_values
[] = {
112 { BBLOG_TCP_LOG_IN
, "Incoming packet" },
113 { BBLOG_TCP_LOG_OUT
, "Transmit (without other event)" },
114 { BBLOG_TCP_LOG_TIMER
, "Timer" },
115 { BBLOG_TCP_LOG_SB_WAKE
, "Awaken socket buffer" },
116 { BBLOG_TCP_LOG_BAD_RETRAN
, "Detected bad retransmission" },
117 { BBLOG_TCP_LOG_PRR
, "Doing PRR" },
118 { BBLOG_TCP_LOG_REORDER
, "Detected reorder" },
119 { BBLOG_TCP_LOG_HPTS
, "Hpts sending a packet" },
120 { BBLOG_BBR_LOG_BBRUPD
, "We updated BBR info" },
121 { BBLOG_BBR_LOG_BBRSND
, "We did a slot calculation and sending is done" },
122 { BBLOG_BBR_LOG_ACKCLEAR
, "An ack clears all outstanding" },
123 { BBLOG_BBR_LOG_INQUEUE
, "The tcb had a packet input to it" },
124 { BBLOG_BBR_LOG_TIMERSTAR
, "Start a timer" },
125 { BBLOG_BBR_LOG_TIMERCANC
, "Cancel a timer" },
126 { BBLOG_BBR_LOG_ENTREC
, "Entered recovery" },
127 { BBLOG_BBR_LOG_EXITREC
, "Exited recovery" },
128 { BBLOG_BBR_LOG_CWND
, "Cwnd change" },
129 { BBLOG_BBR_LOG_BWSAMP
, "LT B/W sample has been made" },
130 { BBLOG_BBR_LOG_MSGSIZE
, "We received a EMSGSIZE error" },
131 { BBLOG_BBR_LOG_BBRRTT
, "BBR RTT is updated" },
132 { BBLOG_BBR_LOG_JUSTRET
, "We just returned out of output" },
133 { BBLOG_BBR_LOG_STATE
, "A BBR state change occurred" },
134 { BBLOG_BBR_LOG_PKT_EPOCH
, "A BBR packet epoch occurred" },
135 { BBLOG_BBR_LOG_PERSIST
, "BBR changed to/from a persists" },
136 { BBLOG_TCP_LOG_FLOWEND
, "End of a flow" },
137 { BBLOG_BBR_LOG_RTO
, "BBR's timeout includes BBR info" },
138 { BBLOG_BBR_LOG_DOSEG_DONE
, "hpts do_segment completes" },
139 { BBLOG_BBR_LOG_EXIT_GAIN
, "BBR exiting gain" },
140 { BBLOG_BBR_LOG_THRESH_CALC
, "Doing threshold calculation" },
141 { BBLOG_TCP_LOG_MAPCHG
, "Map Changes to the sendmap" },
142 { BBLOG_TCP_LOG_USERSEND
, "User level sends data" },
143 { BBLOG_BBR_RSM_CLEARED
, "RSM cleared of ACK flags" },
144 { BBLOG_BBR_LOG_STATE_TARGET
, "Log of target at state" },
145 { BBLOG_BBR_LOG_TIME_EPOCH
, "A timed based Epoch occurred" },
146 { BBLOG_BBR_LOG_TO_PROCESS
, "A timeout was processed" },
147 { BBLOG_BBR_LOG_BBRTSO
, "TSO update" },
148 { BBLOG_BBR_LOG_HPTSDIAG
, "HPTS diag insert" },
149 { BBLOG_BBR_LOG_LOWGAIN
, "Low gain accounting" },
150 { BBLOG_BBR_LOG_PROGRESS
, "Progress timer event" },
151 { BBLOG_TCP_LOG_SOCKET_OPT
, "A socket option is set" },
152 { BBLOG_BBR_LOG_TIMERPREP
, "A BBR var to debug out TLP issues" },
153 { BBLOG_BBR_LOG_ENOBUF_JMP
, "We had a ENOBUF jump" },
154 { BBLOG_BBR_LOG_HPTSI_CALC
, "calc the hptsi time" },
155 { BBLOG_BBR_LOG_RTT_SHRINKS
, "We had a log reduction of rttProp" },
156 { BBLOG_BBR_LOG_BW_RED_EV
, "B/W reduction events" },
157 { BBLOG_BBR_LOG_REDUCE
, "old bbr log reduce for 4.1 and earlier" },
158 { BBLOG_TCP_LOG_RTT
, "A RTT (in useconds) is being sampled and applied to the SRTT algorithm" },
159 { BBLOG_BBR_LOG_SETTINGS_CHG
, "Settings changed for loss response 48" },
160 { BBLOG_BBR_LOG_SRTT_GAIN_EVENT
, "SRTT gaining -- now not used" },
161 { BBLOG_TCP_LOG_REASS
, "Reassembly buffer logging" },
162 { BBLOG_TCP_HDWR_TLS
, "TCP Hardware TLS logs" },
163 { BBLOG_BBR_LOG_HDWR_PACE
, "TCP Hardware pacing log" },
164 { BBLOG_BBR_LOG_TSTMP_VAL
, "Temp debug timestamp validation" },
165 { BBLOG_TCP_LOG_CONNEND
, "End of connection" },
166 { BBLOG_TCP_LOG_LRO
, "LRO entry" },
167 { BBLOG_TCP_SACK_FILTER_RES
, "Results of SACK Filter" },
168 { BBLOG_TCP_SAD_DETECTION
, "Sack Attack Detection" },
169 { BBLOG_TCP_TIMELY_WORK
, "Logs regarding Timely CC tweaks" },
170 { BBLOG_TCP_LOG_USER_EVENT
, "User space event data" },
171 { BBLOG_TCP_LOG_SENDFILE
, "sendfile() logging for TCP connections" },
172 { BBLOG_TCP_LOG_HTTP_T
, "logging of http request tracking" },
173 { BBLOG_TCP_LOG_ACCOUNTING
, "Log of TCP Accounting data" },
174 { BBLOG_TCP_LOG_FSB
, "FSB information" },
175 { BBLOG_RACK_DSACK_HANDLING
, "Handling of DSACK in rack for reordering window" },
176 { BBLOG_TCP_HYSTART
, "TCP Hystart logging" },
177 { BBLOG_TCP_CHG_QUERY
, "Change query during fnc_init()" },
178 { BBLOG_TCP_RACK_LOG_COLLAPSE
, "Window collapse by peer" },
179 { TCP_RACK_TP_TRIGGERED
, "A RACK tracepoint is triggered" },
180 { TCP_HYBRID_PACING_LOG
, "Hybrid pacing log" },
181 { TCP_LOG_PRU
, "TCP protocol user request" },
185 * The event flag values used here are defined in
186 * https://cgit.freebsd.org/src/tree/sys/netinet/tcp_log_buf.h
189 #define BBLOG_EVENT_FLAG_RXBUF 0x0001
190 #define BBLOG_EVENT_FLAG_TXBUF 0x0002
191 #define BBLOG_EVENT_FLAG_HDR 0x0004
192 #define BBLOG_EVENT_FLAG_VERBOSE 0x0008
193 #define BBLOG_EVENT_FLAG_STACKINFO 0x0010
196 * The t_flags values used here are defined in
197 * https://cgit.freebsd.org/src/tree/sys/netinet/tcp_var.h
200 #define BBLOG_T_FLAGS_ACKNOW 0x00000001
201 #define BBLOG_T_FLAGS_DELACK 0x00000002
202 #define BBLOG_T_FLAGS_NODELAY 0x00000004
203 #define BBLOG_T_FLAGS_NOOPT 0x00000008
204 #define BBLOG_T_FLAGS_SENTFIN 0x00000010
205 #define BBLOG_T_FLAGS_REQ_SCALE 0x00000020
206 #define BBLOG_T_FLAGS_RCVD_SCALE 0x00000040
207 #define BBLOG_T_FLAGS_REQ_TSTMP 0x00000080
208 #define BBLOG_T_FLAGS_RCVD_TSTMP 0x00000100
209 #define BBLOG_T_FLAGS_SACK_PERMIT 0x00000200
210 #define BBLOG_T_FLAGS_NEEDSYN 0x00000400
211 #define BBLOG_T_FLAGS_NEEDFIN 0x00000800
212 #define BBLOG_T_FLAGS_NOPUSH 0x00001000
213 #define BBLOG_T_FLAGS_PREVVALID 0x00002000
214 #define BBLOG_T_FLAGS_WAKESOR 0x00004000
215 #define BBLOG_T_FLAGS_GPUTINPROG 0x00008000
216 #define BBLOG_T_FLAGS_MORETOCOME 0x00010000
217 #define BBLOG_T_FLAGS_LQ_OVERFLOW 0x00020000
218 #define BBLOG_T_FLAGS_LASTIDLE 0x00040000
219 #define BBLOG_T_FLAGS_RXWIN0SENT 0x00080000
220 #define BBLOG_T_FLAGS_FASTRECOVERY 0x00100000
221 #define BBLOG_T_FLAGS_WASFRECOVERY 0x00200000
222 #define BBLOG_T_FLAGS_SIGNATURE 0x00400000
223 #define BBLOG_T_FLAGS_FORCEDATA 0x00800000
224 #define BBLOG_T_FLAGS_TSO 0x01000000
225 #define BBLOG_T_FLAGS_TOE 0x02000000
226 #define BBLOG_T_FLAGS_UNUSED0 0x04000000
227 #define BBLOG_T_FLAGS_UNUSED1 0x08000000
228 #define BBLOG_T_FLAGS_LRD 0x10000000
229 #define BBLOG_T_FLAGS_CONGRECOVERY 0x20000000
230 #define BBLOG_T_FLAGS_WASCRECOVERY 0x40000000
231 #define BBLOG_T_FLAGS_FASTOPEN 0x80000000
234 * The t_flags2 values used here are defined in
235 * https://cgit.freebsd.org/src/tree/sys/netinet/tcp_var.h
238 #define BBLOG_T_FLAGS2_PLPMTU_BLACKHOLE 0x00000001
239 #define BBLOG_T_FLAGS2_PLPMTU_PMTUD 0x00000002
240 #define BBLOG_T_FLAGS2_PLPMTU_MAXSEGSNT 0x00000004
241 #define BBLOG_T_FLAGS2_LOG_AUTO 0x00000008
242 #define BBLOG_T_FLAGS2_DROP_AFTER_DATA 0x00000010
243 #define BBLOG_T_FLAGS2_ECN_PERMIT 0x00000020
244 #define BBLOG_T_FLAGS2_ECN_SND_CWR 0x00000040
245 #define BBLOG_T_FLAGS2_ECN_SND_ECE 0x00000080
246 #define BBLOG_T_FLAGS2_ACE_PERMIT 0x00000100
247 #define BBLOG_T_FLAGS2_FIRST_BYTES_COMPLETE 0x00000400
249 #define BBLOG_SND_SCALE_MASK 0x0f
250 #define BBLOG_RCV_SCALE_MASK 0xf0
253 * The errno values used here are defined in
254 * https://cgit.freebsd.org/src/tree/sys/sys/errno.h
257 #define BBLOG_ERRNO_UNKNOWN -1
258 #define BBLOG_ERRNO_NOERROR 0
259 #define BBLOG_ERRNO_EPERM 1
260 #define BBLOG_ERRNO_ENOENT 2
261 #define BBLOG_ERRNO_ESRCH 3
262 #define BBLOG_ERRNO_EINTR 4
263 #define BBLOG_ERRNO_EIO 5
264 #define BBLOG_ERRNO_ENXIO 6
265 #define BBLOG_ERRNO_E2BIG 7
266 #define BBLOG_ERRNO_ENOEXEC 8
267 #define BBLOG_ERRNO_EBADF 9
268 #define BBLOG_ERRNO_ECHILD 10
269 #define BBLOG_ERRNO_EDEADLK 11
270 #define BBLOG_ERRNO_ENOMEM 12
271 #define BBLOG_ERRNO_EACCES 13
272 #define BBLOG_ERRNO_EFAULT 14
273 #define BBLOG_ERRNO_ENOTBLK 15
274 #define BBLOG_ERRNO_EBUSY 16
275 #define BBLOG_ERRNO_EEXIST 17
276 #define BBLOG_ERRNO_EXDEV 18
277 #define BBLOG_ERRNO_ENODEV 19
278 #define BBLOG_ERRNO_ENOTDIR 20
279 #define BBLOG_ERRNO_EISDIR 21
280 #define BBLOG_ERRNO_EINVAL 22
281 #define BBLOG_ERRNO_ENFILE 23
282 #define BBLOG_ERRNO_EMFILE 24
283 #define BBLOG_ERRNO_ENOTTY 25
284 #define BBLOG_ERRNO_ETXTBSY 26
285 #define BBLOG_ERRNO_EFBIG 27
286 #define BBLOG_ERRNO_ENOSPC 28
287 #define BBLOG_ERRNO_ESPIPE 29
288 #define BBLOG_ERRNO_EROFS 30
289 #define BBLOG_ERRNO_EMLINK 31
290 #define BBLOG_ERRNO_EPIPE 32
291 #define BBLOG_ERRNO_EDOM 33
292 #define BBLOG_ERRNO_ERANGE 34
293 #define BBLOG_ERRNO_EAGAIN 35
294 #define BBLOG_ERRNO_EWOULDBLOCK 35
295 #define BBLOG_ERRNO_EAGAIN 35
296 #define BBLOG_ERRNO_EINPROGRESS 36
297 #define BBLOG_ERRNO_EALREADY 37
298 #define BBLOG_ERRNO_ENOTSOCK 38
299 #define BBLOG_ERRNO_EDESTADDRREQ 39
300 #define BBLOG_ERRNO_EMSGSIZE 40
301 #define BBLOG_ERRNO_EPROTOTYPE 41
302 #define BBLOG_ERRNO_ENOPROTOOPT 42
303 #define BBLOG_ERRNO_EPROTONOSUPPORT 43
304 #define BBLOG_ERRNO_ESOCKTNOSUPPORT 44
305 #define BBLOG_ERRNO_EOPNOTSUPP 45
306 #define BBLOG_ERRNO_EPFNOSUPPORT 46
307 #define BBLOG_ERRNO_EAFNOSUPPORT 47
308 #define BBLOG_ERRNO_EADDRINUSE 48
309 #define BBLOG_ERRNO_EADDRNOTAVAIL 49
310 #define BBLOG_ERRNO_ENETDOWN 50
311 #define BBLOG_ERRNO_ENETUNREACH 51
312 #define BBLOG_ERRNO_ENETRESET 52
313 #define BBLOG_ERRNO_ECONNABORTED 53
314 #define BBLOG_ERRNO_ECONNRESET 54
315 #define BBLOG_ERRNO_ENOBUFS 55
316 #define BBLOG_ERRNO_EISCONN 56
317 #define BBLOG_ERRNO_ENOTCONN 57
318 #define BBLOG_ERRNO_ESHUTDOWN 58
319 #define BBLOG_ERRNO_ETOOMANYREFS 59
320 #define BBLOG_ERRNO_ETIMEDOUT 60
321 #define BBLOG_ERRNO_ECONNREFUSED 61
322 #define BBLOG_ERRNO_ELOOP 62
323 #define BBLOG_ERRNO_ENAMETOOLONG 63
324 #define BBLOG_ERRNO_EHOSTDOWN 64
325 #define BBLOG_ERRNO_EHOSTUNREACH 65
326 #define BBLOG_ERRNO_ENOTEMPTY 66
327 #define BBLOG_ERRNO_EPROCLIM 67
328 #define BBLOG_ERRNO_EUSERS 68
329 #define BBLOG_ERRNO_EDQUOT 69
330 #define BBLOG_ERRNO_ESTALE 70
331 #define BBLOG_ERRNO_EREMOTE 71
332 #define BBLOG_ERRNO_EBADRPC 72
333 #define BBLOG_ERRNO_ERPCMISMATCH 73
334 #define BBLOG_ERRNO_EPROGUNAVAIL 74
335 #define BBLOG_ERRNO_EPROGMISMATCH 75
336 #define BBLOG_ERRNO_EPROCUNAVAIL 76
337 #define BBLOG_ERRNO_ENOLCK 77
338 #define BBLOG_ERRNO_ENOSYS 78
339 #define BBLOG_ERRNO_EFTYPE 79
340 #define BBLOG_ERRNO_EAUTH 80
341 #define BBLOG_ERRNO_ENEEDAUTH 81
342 #define BBLOG_ERRNO_EIDRM 82
343 #define BBLOG_ERRNO_ENOMSG 83
344 #define BBLOG_ERRNO_EOVERFLOW 84
345 #define BBLOG_ERRNO_ECANCELED 85
346 #define BBLOG_ERRNO_EILSEQ 86
347 #define BBLOG_ERRNO_ENOATTR 87
348 #define BBLOG_ERRNO_EDOOFUS 88
349 #define BBLOG_ERRNO_EBADMSG 89
350 #define BBLOG_ERRNO_EMULTIHOP 90
351 #define BBLOG_ERRNO_ENOLINK 91
352 #define BBLOG_ERRNO_EPROTO 92
353 #define BBLOG_ERRNO_ENOTCAPABLE 93
354 #define BBLOG_ERRNO_ECAPMODE 94
355 #define BBLOG_ERRNO_ENOTRECOVERABLE 95
356 #define BBLOG_ERRNO_EOWNERDEAD 96
357 #define BBLOG_ERRNO_EINTEGRITY 97
359 static const value_string errno_values
[] = {
360 { BBLOG_ERRNO_UNKNOWN
, "Not known" },
361 { BBLOG_ERRNO_NOERROR
, "No error" },
362 { BBLOG_ERRNO_EPERM
, "EPERM (Operation not permitted)" },
363 { BBLOG_ERRNO_ENOENT
, "ENOENT (No such file or directory)" },
364 { BBLOG_ERRNO_ESRCH
, "ESRCH (No such process)" },
365 { BBLOG_ERRNO_EINTR
, "EINTR (Interrupted system call)" },
366 { BBLOG_ERRNO_EIO
, "EIO (Input/output error)" },
367 { BBLOG_ERRNO_ENXIO
, "ENXIO (Device not configured)" },
368 { BBLOG_ERRNO_E2BIG
, "E2BIG (Argument list too long)" },
369 { BBLOG_ERRNO_ENOEXEC
, "ENOEXEC (Exec format error)" },
370 { BBLOG_ERRNO_EBADF
, "EBADF (Bad file descriptor)" },
371 { BBLOG_ERRNO_ECHILD
, "ECHILD (No child processes)" },
372 { BBLOG_ERRNO_EDEADLK
, "EDEADLK (Resource deadlock avoided)" },
373 { BBLOG_ERRNO_ENOMEM
, "ENOMEM (Cannot allocate memory)" },
374 { BBLOG_ERRNO_EACCES
, "EACCES (Permission denied)" },
375 { BBLOG_ERRNO_EFAULT
, "EFAULT (Bad address)" },
376 { BBLOG_ERRNO_ENOTBLK
, "ENOTBLK (Block device required)" },
377 { BBLOG_ERRNO_EBUSY
, "EBUSY (Device busy)" },
378 { BBLOG_ERRNO_EEXIST
, "EEXIST (File exists)" },
379 { BBLOG_ERRNO_EXDEV
, "EXDEV (Cross-device link)" },
380 { BBLOG_ERRNO_ENODEV
, "ENODEV (Operation not supported by device)" },
381 { BBLOG_ERRNO_ENOTDIR
, "ENOTDIR (Not a directory)" },
382 { BBLOG_ERRNO_EISDIR
, "EISDIR (Is a directory)" },
383 { BBLOG_ERRNO_EINVAL
, "EINVAL (Invalid argument)" },
384 { BBLOG_ERRNO_ENFILE
, "ENFILE (Too many open files in system)" },
385 { BBLOG_ERRNO_EMFILE
, "EMFILE (Too many open files)" },
386 { BBLOG_ERRNO_ENOTTY
, "ENOTTY (Inappropriate ioctl for device)" },
387 { BBLOG_ERRNO_ETXTBSY
, "ETXTBSY (Text file busy)" },
388 { BBLOG_ERRNO_EFBIG
, "EFBIG (File too large)" },
389 { BBLOG_ERRNO_ENOSPC
, "ENOSPC (No space left on device)" },
390 { BBLOG_ERRNO_ESPIPE
, "ESPIPE (Illegal seek)" },
391 { BBLOG_ERRNO_EROFS
, "EROFS (Read-only filesystem)" },
392 { BBLOG_ERRNO_EMLINK
, "EMLINK (Too many links)" },
393 { BBLOG_ERRNO_EPIPE
, "EPIPE (Broken pipe)" },
394 { BBLOG_ERRNO_EDOM
, "EDOM (Numerical argument out of domain)" },
395 { BBLOG_ERRNO_ERANGE
, "ERANGE (Result too large)" },
396 { BBLOG_ERRNO_EWOULDBLOCK
, "EWOULDBLOCK (Operation would block)" },
397 { BBLOG_ERRNO_EINPROGRESS
, "EINPROGRESS (Operation now in progress)" },
398 { BBLOG_ERRNO_EALREADY
, "EALREADY (Operation already in progress)" },
399 { BBLOG_ERRNO_ENOTSOCK
, "ENOTSOCK (Socket operation on non-socket)" },
400 { BBLOG_ERRNO_EDESTADDRREQ
, "EDESTADDRREQ (Destination address required)" },
401 { BBLOG_ERRNO_EMSGSIZE
, "EMSGSIZE (Message too long)" },
402 { BBLOG_ERRNO_EPROTOTYPE
, "EPROTOTYPE (Protocol wrong type for sockets)" },
403 { BBLOG_ERRNO_ENOPROTOOPT
, "ENOPROTOOPT (Protocol not available)" },
404 { BBLOG_ERRNO_EPROTONOSUPPORT
, "EPROTONOSUPPORT (Protocol not supported)" },
405 { BBLOG_ERRNO_ESOCKTNOSUPPORT
, "ESOCKTNOSUPPORT (Socket type not supported)" },
406 { BBLOG_ERRNO_EOPNOTSUPP
, "EOPNOTSUPP (Operation not supported)" },
407 { BBLOG_ERRNO_EPFNOSUPPORT
, "EPFNOSUPPORT (Protocol family not supported)" },
408 { BBLOG_ERRNO_EAFNOSUPPORT
, "EAFNOSUPPORT (Address family not supported by protocol family)" },
409 { BBLOG_ERRNO_EADDRINUSE
, "EADDRINUSE (Address already in use)" },
410 { BBLOG_ERRNO_EADDRNOTAVAIL
, "EADDRNOTAVAIL (Can't assign requested address)" },
411 { BBLOG_ERRNO_ENETDOWN
, "ENETDOWN (Network is down)" },
412 { BBLOG_ERRNO_ENETUNREACH
, "ENETUNREACH (Network is unreachable)" },
413 { BBLOG_ERRNO_ENETRESET
, "ENETRESET (Network dropped connection on reset)" },
414 { BBLOG_ERRNO_ECONNABORTED
, "ECONNABORTED (Software caused connection abort)" },
415 { BBLOG_ERRNO_ECONNRESET
, "ECONNRESET (Connection reset by peer)" },
416 { BBLOG_ERRNO_ENOBUFS
, "ENOBUFS (No buffer space available)" },
417 { BBLOG_ERRNO_EISCONN
, "EISCONN (Socket is already connected)" },
418 { BBLOG_ERRNO_ENOTCONN
, "ENOTCONN (Socket is not connected)" },
419 { BBLOG_ERRNO_ESHUTDOWN
, "ESHUTDOWN (Can't send after socket shutdown)" },
420 { BBLOG_ERRNO_ETOOMANYREFS
, "ETOOMANYREFS (Too many references: can't splice)" },
421 { BBLOG_ERRNO_ETIMEDOUT
, "ETIMEDOUT (Operation timed out)" },
422 { BBLOG_ERRNO_ECONNREFUSED
, "ECONNREFUSED (Connection refused)" },
423 { BBLOG_ERRNO_ELOOP
, "ELOOP (Too many levels of symbolic links)" },
424 { BBLOG_ERRNO_ENAMETOOLONG
, "ENAMETOOLONG (File name too long)" },
425 { BBLOG_ERRNO_EHOSTDOWN
, "EHOSTDOWN (Host is down)" },
426 { BBLOG_ERRNO_EHOSTUNREACH
, "EHOSTUNREACH (No route to host)" },
427 { BBLOG_ERRNO_ENOTEMPTY
, "ENOTEMPTY (Directory not empty)" },
428 { BBLOG_ERRNO_EPROCLIM
, "EPROCLIM (Too many processes)" },
429 { BBLOG_ERRNO_EUSERS
, "EUSERS (Too many users)" },
430 { BBLOG_ERRNO_EDQUOT
, "EDQUOT (Disc quota exceeded)" },
431 { BBLOG_ERRNO_ESTALE
, "ESTALE (Stale NFS file handle)" },
432 { BBLOG_ERRNO_EREMOTE
, "EREMOTE (Too many levels of remote in path)" },
433 { BBLOG_ERRNO_EBADRPC
, "EBADRPC (RPC struct is bad)" },
434 { BBLOG_ERRNO_ERPCMISMATCH
, "ERPCMISMATCH (RPC version wrong)" },
435 { BBLOG_ERRNO_EPROGUNAVAIL
, "EPROGUNAVAIL (RPC prog. not avail)" },
436 { BBLOG_ERRNO_EPROGMISMATCH
, "EPROGMISMATCH (Program version wrong)" },
437 { BBLOG_ERRNO_EPROCUNAVAIL
, "EPROCUNAVAIL (Bad procedure for program)" },
438 { BBLOG_ERRNO_ENOLCK
, "ENOLCK (No locks available)" },
439 { BBLOG_ERRNO_ENOSYS
, "ENOSYS (Function not implemented)" },
440 { BBLOG_ERRNO_EFTYPE
, "EFTYPE (Inappropriate file type or format)" },
441 { BBLOG_ERRNO_EAUTH
, "EAUTH (Authentication error)" },
442 { BBLOG_ERRNO_ENEEDAUTH
, "ENEEDAUTH (Need authenticator)" },
443 { BBLOG_ERRNO_EIDRM
, "EIDRM (Identifier removed)" },
444 { BBLOG_ERRNO_ENOMSG
, "ENOMSG (No message of desired type)" },
445 { BBLOG_ERRNO_EOVERFLOW
, "EOVERFLOW (Value too large to be stored in data type)" },
446 { BBLOG_ERRNO_ECANCELED
, "ECANCELED (Operation canceled)" },
447 { BBLOG_ERRNO_EILSEQ
, "EILSEQ (Illegal byte sequence)" },
448 { BBLOG_ERRNO_ENOATTR
, "ENOATTR (Attribute not found)" },
449 { BBLOG_ERRNO_EDOOFUS
, "EDOOFUS (Programming error)" },
450 { BBLOG_ERRNO_EBADMSG
, "EBADMSG (Bad message)" },
451 { BBLOG_ERRNO_EMULTIHOP
, "EMULTIHOP (Multihop attempted)" },
452 { BBLOG_ERRNO_ENOLINK
, "ENOLINK (Link has been severed)" },
453 { BBLOG_ERRNO_EPROTO
, "EPROTO (Protocol error)" },
454 { BBLOG_ERRNO_ENOTCAPABLE
, "ENOTCAPABLE (Capabilities insufficient)" },
455 { BBLOG_ERRNO_ECAPMODE
, "ECAPMODE (Not permitted in capability mode)" },
456 { BBLOG_ERRNO_ENOTRECOVERABLE
, "ENOTRECOVERABLE (State not recoverable)" },
457 { BBLOG_ERRNO_EOWNERDEAD
, "EOWNERDEAD (Previous owner died)" },
458 { BBLOG_ERRNO_EINTEGRITY
, "EINTEGRITY (Integrity check failed)" },