💢 warts
This crate implements reading and writing
warts(5)
files produced by CAIDA's Scamper tool.
It relies on the excellent deku crate for serializing and deserializing the binary format.
TODO: Link to documentation.
Usage
You can run one of the examples in examples/:
To use in your own project, add the following dependency to Cargo.toml:
[]
= "0.1"
Limitations
The following features are currently not implemented:
- DoubleTree and PMTUD data
-
tsprespecdata - Streaming reading
- Automatic length/flags computation when writing warts
Performance
Time to parse and print the traceroutes from abz-uk.team-probing.c009127.20210202.warts (52MB).
Measured on a 2020 M1 MacBook Air.
| Library | Time (s) |
|---|---|
warts / read_traceroute |
0.797 |
Scamper / sc_warts2text |
1.125 |
pywarts / parse_from_stdin.py |
12.405 |
cmand/scamper / sc_warts2text.py |
21.207 |
Object types
| Type | Structure | Name | Implemented |
|---|---|---|---|
0x0001 |
scamper_list_t |
List | Y |
0x0002 |
scamper_cycle_t |
Cycle start | Y |
0x0003 |
scamper_cycle_t |
Cycle definition | Y |
0x0004 |
scamper_cycle_t |
Cycle stop | Y |
0x0005 |
scamper_addr_t |
Address (deprecated) | N |
0x0006 |
scamper_trace_t |
Traceroute | Y |
0x0007 |
scamper_ping_t |
Ping | Y |
0x0008 |
scamper_tracelb_t |
MDA traceroute | Y |
0x0009 |
scamper_dealias_t |
Alias resolution | N |
0x000a |
scamper_neighbourdisc_t |
Neighbour discovery | N |
0x000b |
scamper_tbit_t |
TCP behaviour inference tool | N |
0x000c |
scamper_sting_t |
Sting | N |
0x000d |
scamper_sniff_t |
Sniff | N |