-
Notifications
You must be signed in to change notification settings - Fork 0
/
trippy.toml
421 lines (366 loc) · 11.9 KB
/
trippy.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
# Sample config file for Trippy.
#
# Copy this template config file to your platform specific config dir.
#
# Trippy will attempt to locate a `trippy.toml` or `.trippy.toml` config file
# in one of the following locations:
# the current directory
# the user home directory
# the XDG config directory (Unix only): `$XDG_CONFIG_HOME` or `~/.config`
# the Windows data directory (Windows only): `%APPDATA%`
#
# You may override the config file name and location by passing the `-c`
# (`--config-file`) command line argument.
#
# All sections and all items within each section are non-mandatory.
#
# General Trippy configuration.
#
[trippy]
# The Trippy mode.
#
# Allowed values are:
# tui - Display interactive Tui [default]
# stream - Display a continuous stream of tracing data
# pretty - Generate a pretty text table report for N cycles
# markdown - Generate a Markdown text table report for N cycles
# csv - Generate a CSV report for N cycles
# json - Generate a JSON report for N cycles
# dot - Generate a Graphviz DOT report for N cycles
# flows - Display all flows for N cycles
# silent - Do not generate any output for N cycles
#
# Note: the dot and flows modes are only allowed with paris or dublin
# multipath strategy.
mode = "tui"
# Trace without requiring elevated privileges [default: false]
#
# Enabling will cause IPPROTO_ICMP sockets to be used.
#
# Note: not supported on all platforms.
unprivileged = true
# How to format log data.
#
# Allowed values are:
# compact - Display log data in a compact format
# pretty - Display log data in a pretty format [default]
# json - Display log data in a json format
# chrome - Display log data in Chrome trace format
log-format = "pretty"
# The debug log filter [default: trippy=debug]
log-filter = "trippy=debug"
# How to log event spans.
#
# Allowed values are:
# off - Do not display event spans [default]
# active - Display enter and exit event spans
# full - Display all event spans
log-span-events = "off"
#
# Tracing strategy configuration.
#
[strategy]
# The tracing protocol.
#
# Allowed values are:
# icmp [default]
# udp
# tcp
protocol = "icmp"
# The address family.
#
# Allowed values are:
# ipv4 - Lookup Ipv4 only
# ipv6 - Lookup Ipv6 only
# ipv6-then-ipv4 - Lookup Ipv6 with a fallback to Ipv4
# ipv4-then-ipv6 - Lookup Ipv4 with a fallback to Ipv6 [default]
addr-family = "ipv4-then-ipv6"
# The target port (TCP & UDP only) [default: 80]
#
# Applicable for TCP and UDP protocols only.
#target-port = 80
# The source port (TCP & UDP only) [default: auto]
#
# Applicable for TCP and UDP protocols only.
#source-port = 1234
# The source IP address [default: auto]
#
# If unspecified the source address will be chosen automatically based on the tracing target.
#source-address = "1.2.3.4"
# The network interface [default: auto]
#
# If not specified the interface is chosen based on the source-address.
#interface = "en0"
# The minimum duration of every round [default: 1s]
#
# The minimum time that must elapse before a tracing round is considered
# complete, regardless of whether the target is discovered or not.
min-round-duration = "1s"
# The maximum duration of every round [default: 1s]
#
# The maximum time that may elapse before a tracing round is considered
# complete, regardless of whether the target is discovered or not.
max-round-duration = "1s"
# The round grace period [default: 100ms]
#
# The period of time to wait for additional probe responses after the target
# has responded.
grace-duration = "100ms"
# The initial sequence number [default: 33434]
initial-sequence = 33434
# The Equal-cost Multi-Path routing strategy (UDP only)
#
# Allowed value are:
# classic - The src or dest port is used to store the sequence number [default]
# paris - The UDP `checksum` field is used to store the sequence number
# dublin - The IP `identifier` field is used to store the sequence number
#
# See https://github.com/fujiapple852/trippy/issues/274 for more details.
multipath-strategy = "classic"
# The maximum number of in-flight ICMP echo requests [default: 24]
#
# The tracing strategy operates a sliding window protocol and will allow a
# maximum number of probes to be inflight (sent, and not received or lost)
# at any given time.
max-inflight = 24
# The TTL to start from [default: 1]
first-ttl = 1
# The maximum number of TTL hops [default: 64]
max-ttl = 64
# The size of IP packet to send [default: 84]
#
# For icmp this is the sum of the IP header, ICMP header and the payload.
# Trippy will adjust the size of the payload to fill up to the packet size.
packet-size = 84
# The repeating pattern in the payload of the ICMP packet [default: 0]
payload-pattern = 0
# The TOS IP header value (TCP and UDP only) [default: 0]
#
# This is also known as DSCP+ECN.
tos = 0
# Whether to parse ICMP extensions.
#
# If enabled, all extensions attached to incoming ICMP TimeExceeded and DestinationUnavailable messages will be parsed
# and provided as part of the trace response data.
#
# The following ICMP Extension Object Classes are supported:
# 1 - MPLS Label Stack Class (RFC4950)
#
# Extension objects with an unknown class will be parsed to capture generic information including the class, subtype,
# length and payload bytes.
icmp-extensions = false
# The socket read timeout [default: 10ms]
read-timeout = "10ms"
# The maximum number of samples to record per hop [default: 256]
max-samples = 256
# The maximum number of flows to record [default: 64]
max-flows = 64
#
# DNS configuration.
#
[dns]
# How DNS queries are resolved
#
# Allowed values are:
# system - Resolve using the OS resolver [default]
# resolv - Resolve using the `/etc/resolv.conf` DNS configuration
# google - Resolve using the Google `8.8.8.8` DNS service
# cloudflare - Resolve using the Cloudflare `1.1.1.1` DNS service
dns-resolve-method = "system"
# Trace to all IPs resolved from DNS lookup (ICMP only) [default: false]
#
# When set to true a trace will be started for all IPs resolved for all given targets.
# When set to false a trace will be started for one arbitrarily chosen IP per given target.
dns-resolve-all = false
# Whether to lookup AS information [default: false]
#
# If enabled, AS (autonomous system) information is retrieved during DNS
# queries.
dns-lookup-as-info = false
# The maximum time to wait to perform DNS queries [default: 5s]
dns-timeout = "5s"
# The time-to-live (TTL) for DNS entries [default: 300s]
dns-ttl = "300s"
#
# Report generation configuration.
#
[report]
# The number of report cycles to run [default: 10]
#
# Only applicable for modes pretty, markdown, csv and json.
report-cycles = 10
#
# General Tui Configuration.
#
[tui]
# How to render addresses.
#
# Allowed values are:
# ip - Show IP address only
# host - Show reverse-lookup DNS hostname only [default]
# both - Show both IP address and reverse-lookup DNS hostname
tui-address-mode = "host"
# How to render AS information.
#
# Allowed values are:
# asn - Show the ASN [default]
# prefix - Display the AS prefix
# country-code - Display the country code
# registry - Display the registry name
# allocated - Display the allocated date
# name - Display the AS name
tui-as-mode = "asn"
# Custom columns to be displayed in the TUI hops table.
#
# Default values:
#
# h - Ttl
# o - Hostname
# l - Loss %
# s - Probes sent
# r - Responses received
# a - Last RTT
# v - Average RTT
# b - Best RTT
# w - Worst RTT
# d - Stddev
# t - Status
#
# Also available:
#
# j - Jitter
# g - Jitter average
# x - Jitter max
# i - Jitter intra
# Q - Last probe sequence number
# S - Last probe source port
# P - Last probe destination port
# T - Last icmp packet type
# C - Last icmp packet code
# N - Last NAT status
# f - Probes failed
#
# The columns will be shown in the order specified.
tui-custom-columns = "holsravbwdt"
# How to render ICMP extensions.
#
# off - Do not show icmp extensions [default]
# mpls - Show MPLS label(s) only
# full - Show full icmp extension data for all known extensions
# all - Show full icmp extension data for all classes
tui-icmp-extension-mode = "off"
# The mmdb file to use GeoIp lookup [default: none]
#
# Supported mmdb formats:
# MaxMind "GeoLite2 City"
# IPinfo "IP to Country + ASN Database"
# IPinfo "IP to Geolocation Extended Database"
geoip-mmdb-file = "/Users/flaviomartins/.cache/ipinfo/country_asn.mmdb"
# How to render GeoIp information.
#
# Allowed values are:
# off - Do not show GeoIp information [default]
# short - Show short format GeoIp information
# long - Show long format GeoIp information
# location - Show latitude and Longitude format GeoIp information
#
# Note this value is ignored unless a valid geoip-mmdb-file value is also provided.
tui-geoip-mode = "short"
# The maximum number of addresses to show per hop [default: auto]
#
# Use a zero value for `auto`.
tui-max-addrs = 0
# Whether to preserve the screen on exit [default: false]
tui-preserve-screen = false
# The Tui refresh rate [default: 100ms]
tui-refresh-rate = "100ms"
# The maximum ttl of hops which will be masked for privacy [default: 1]
tui-privacy-max-ttl = 0
# Tui color theme configure.
#
# The supported ANSI color values are:
# Black, Red, Green, Yellow, Blue, Magenta, Cyan, Gray, DarkGray, LightRed,
# LightGreen, LightYellow, LightBlue, LightMagenta, LightCyan, White
#
# In addition, CSS named colors (i.e. SkyBlue) and raw hex values (i.e. ffffff)
# may be used but note that these are only supported on some platforms and
# terminals and may not render correctly elsewhere.
#
# Color names are case-insensitive and may contain dashes.
#
# See https://github.com/fujiapple852/trippy#theme-reference for details.
[theme-colors]
bg-color = "black"
border-color = "gray"
text-color = "gray"
tab-text-color = "green"
hops-table-header-bg-color = "white"
hops-table-header-text-color = "black"
hops-table-row-active-text-color = "gray"
hops-table-row-inactive-text-color = "darkgray"
hops-chart-selected-color = "green"
hops-chart-unselected-color = "gray"
hops-chart-axis-color = "darkgray"
frequency-chart-bar-color = "green"
frequency-chart-text-color = "gray"
flows-chart-bar-selected-color = "green"
flows-chart-bar-unselected-color = "darkgray"
flows-chart-text-current-color = "lightgreen"
flows-chart-text-non-current-color = "white"
samples-chart-color = "yellow"
help-dialog-bg-color = "blue"
help-dialog-text-color = "gray"
settings-dialog-bg-color = "blue"
settings-tab-text-color = "green"
settings-table-header-text-color = "black"
settings-table-header-bg-color = "white"
settings-table-row-text-color = "gray"
map-world-color = "white"
map-radius-color = "yellow"
map-selected-color = "green"
map-info-panel-border-color = "gray"
map-info-panel-bg-color = "black"
map-info-panel-text-color = "gray"
# Tui key bindings Configuration.
#
# The supported modifiers are: shift, ctrl, alt, super, hyper & meta. Multiple
# modifiers may be specified, for example ctrl+shift+b.
#
# See https://github.com/fujiapple852/trippy#key-bindings-reference for details.
[bindings]
toggle-help = "h"
toggle-help-alt = "?"
toggle-settings = "s"
toggle-settings-tui = "1"
toggle-settings-trace = "2"
toggle-settings-dns = "3"
toggle-settings-geoip = "4"
toggle-settings-bindings = "5"
toggle-settings-theme = "6"
toggle-settings-columns = "7"
next-hop = "down"
previous-hop = "up"
next-trace = "right"
previous-trace = "left"
next-hop-address = "."
previous-hop-address = ","
address-mode-ip = "i"
address-mode-host = "n"
address-mode-both = "b"
toggle-freeze = "ctrl+f"
toggle-chart = "c"
toggle-map = "m"
toggle-flows = "f"
toggle-privacy = "p"
expand-hosts = "]"
expand-hosts-max = "}"
contract-hosts = "["
contract-hosts-min = "{"
chart-zoom-in = "="
chart-zoom-out = "-"
clear-trace-data = "ctrl+r"
clear-dns-cache = "ctrl+k"
clear-selection = "esc"
toggle-as-info = "z"
toggle-hop-details = "d"
quit = "q"