├── .bumpversion.cfg ├── .clang-format ├── .dockerignore ├── .github └── workflows │ ├── binaries.yml │ ├── docker.yml │ ├── documentation.yml │ └── tests.yml ├── .gitignore ├── .mailmap ├── .pre-commit-config.yaml ├── CMakeLists.txt ├── Dockerfile ├── LICENSE ├── README.md ├── apps ├── caracal-config.h.in └── caracal.cpp ├── cmake ├── FindLPM.cmake └── conan.cmake ├── codecov.yml ├── conanfile.txt ├── data ├── arp.pcap ├── cast.svg ├── icmp-icmp-echo-reply.pcap ├── icmp-icmp-echo-reply.txt ├── icmp-icmp-ttl-exceeded-mpls.pcap ├── icmp-icmp-ttl-exceeded-mpls.txt ├── icmp-icmp-ttl-exceeded.pcap ├── icmp-icmp-ttl-exceeded.txt ├── icmp6-icmp6-echo-reply.pcap ├── icmp6-icmp6-echo-reply.txt ├── icmp6-icmp6-ttl-exceeded.pcap ├── icmp6-icmp6-ttl-exceeded.txt ├── udp-icmp-ttl-exceeded.pcap ├── udp-icmp-ttl-exceeded.txt ├── udp-icmp6-ttl-exceeded.pcap └── udp-icmp6-ttl-exceeded.txt ├── docs ├── dev.md ├── index.md └── usage.md ├── extern └── liblpm │ ├── LICENSE │ ├── README.md │ └── src │ ├── lpm.c │ └── lpm.h ├── flake.lock ├── flake.nix ├── include └── caracal │ ├── builder.hpp │ ├── caracal.hpp │ ├── checked.hpp │ ├── checksum.hpp │ ├── constants.hpp │ ├── lpm.hpp │ ├── packet.hpp │ ├── parser.hpp │ ├── pretty.hpp │ ├── probe.hpp │ ├── prober.hpp │ ├── prober_config.hpp │ ├── protocols.hpp │ ├── rate_limiter.hpp │ ├── reply.hpp │ ├── sender.hpp │ ├── sniffer.hpp │ ├── statistics.hpp │ ├── timestamp.hpp │ └── utilities.hpp ├── mkdocs.yml ├── src ├── builder.cpp ├── checksum.cpp ├── lpm.cpp ├── packet.cpp ├── parser.cpp ├── pretty.cpp ├── probe.cpp ├── prober.cpp ├── prober_config.cpp ├── protocols.cpp ├── rate_limiter.cpp ├── reply.cpp ├── sender.cpp ├── sniffer.cpp ├── statistics.cpp ├── timestamp.cpp └── utilities.cpp └── tests ├── builder_test.cpp ├── checked_test.cpp ├── checksum_test.cpp ├── environment.hpp ├── lpm_test.cpp ├── parser_test.cpp ├── pretty_test.cpp ├── probe_test.cpp ├── prober_config_test.cpp ├── prober_test.cpp ├── protocols_test.cpp ├── rate_limiter_test.cpp ├── statistics_test.cpp ├── timestamp_test.cpp └── utilities_test.cpp /.bumpversion.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.bumpversion.cfg -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.clang-format -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/workflows/binaries.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.github/workflows/binaries.yml -------------------------------------------------------------------------------- /.github/workflows/docker.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.github/workflows/docker.yml -------------------------------------------------------------------------------- /.github/workflows/documentation.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.github/workflows/documentation.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.gitignore -------------------------------------------------------------------------------- /.mailmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.mailmap -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/README.md -------------------------------------------------------------------------------- /apps/caracal-config.h.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/apps/caracal-config.h.in -------------------------------------------------------------------------------- /apps/caracal.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/apps/caracal.cpp -------------------------------------------------------------------------------- /cmake/FindLPM.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/cmake/FindLPM.cmake -------------------------------------------------------------------------------- /cmake/conan.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/cmake/conan.cmake -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/codecov.yml -------------------------------------------------------------------------------- /conanfile.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/conanfile.txt -------------------------------------------------------------------------------- /data/arp.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/arp.pcap -------------------------------------------------------------------------------- /data/cast.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/cast.svg -------------------------------------------------------------------------------- /data/icmp-icmp-echo-reply.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp-icmp-echo-reply.pcap -------------------------------------------------------------------------------- /data/icmp-icmp-echo-reply.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp-icmp-echo-reply.txt -------------------------------------------------------------------------------- /data/icmp-icmp-ttl-exceeded-mpls.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp-icmp-ttl-exceeded-mpls.pcap -------------------------------------------------------------------------------- /data/icmp-icmp-ttl-exceeded-mpls.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp-icmp-ttl-exceeded-mpls.txt -------------------------------------------------------------------------------- /data/icmp-icmp-ttl-exceeded.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp-icmp-ttl-exceeded.pcap -------------------------------------------------------------------------------- /data/icmp-icmp-ttl-exceeded.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp-icmp-ttl-exceeded.txt -------------------------------------------------------------------------------- /data/icmp6-icmp6-echo-reply.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp6-icmp6-echo-reply.pcap -------------------------------------------------------------------------------- /data/icmp6-icmp6-echo-reply.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp6-icmp6-echo-reply.txt -------------------------------------------------------------------------------- /data/icmp6-icmp6-ttl-exceeded.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp6-icmp6-ttl-exceeded.pcap -------------------------------------------------------------------------------- /data/icmp6-icmp6-ttl-exceeded.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/icmp6-icmp6-ttl-exceeded.txt -------------------------------------------------------------------------------- /data/udp-icmp-ttl-exceeded.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/udp-icmp-ttl-exceeded.pcap -------------------------------------------------------------------------------- /data/udp-icmp-ttl-exceeded.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/udp-icmp-ttl-exceeded.txt -------------------------------------------------------------------------------- /data/udp-icmp6-ttl-exceeded.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/udp-icmp6-ttl-exceeded.pcap -------------------------------------------------------------------------------- /data/udp-icmp6-ttl-exceeded.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/data/udp-icmp6-ttl-exceeded.txt -------------------------------------------------------------------------------- /docs/dev.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/docs/dev.md -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/docs/index.md -------------------------------------------------------------------------------- /docs/usage.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/docs/usage.md -------------------------------------------------------------------------------- /extern/liblpm/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/extern/liblpm/LICENSE -------------------------------------------------------------------------------- /extern/liblpm/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/extern/liblpm/README.md -------------------------------------------------------------------------------- /extern/liblpm/src/lpm.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/extern/liblpm/src/lpm.c -------------------------------------------------------------------------------- /extern/liblpm/src/lpm.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/extern/liblpm/src/lpm.h -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/flake.lock -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/flake.nix -------------------------------------------------------------------------------- /include/caracal/builder.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/builder.hpp -------------------------------------------------------------------------------- /include/caracal/caracal.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/caracal.hpp -------------------------------------------------------------------------------- /include/caracal/checked.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/checked.hpp -------------------------------------------------------------------------------- /include/caracal/checksum.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/checksum.hpp -------------------------------------------------------------------------------- /include/caracal/constants.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/constants.hpp -------------------------------------------------------------------------------- /include/caracal/lpm.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/lpm.hpp -------------------------------------------------------------------------------- /include/caracal/packet.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/packet.hpp -------------------------------------------------------------------------------- /include/caracal/parser.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/parser.hpp -------------------------------------------------------------------------------- /include/caracal/pretty.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/pretty.hpp -------------------------------------------------------------------------------- /include/caracal/probe.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/probe.hpp -------------------------------------------------------------------------------- /include/caracal/prober.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/prober.hpp -------------------------------------------------------------------------------- /include/caracal/prober_config.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/prober_config.hpp -------------------------------------------------------------------------------- /include/caracal/protocols.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/protocols.hpp -------------------------------------------------------------------------------- /include/caracal/rate_limiter.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/rate_limiter.hpp -------------------------------------------------------------------------------- /include/caracal/reply.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/reply.hpp -------------------------------------------------------------------------------- /include/caracal/sender.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/sender.hpp -------------------------------------------------------------------------------- /include/caracal/sniffer.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/sniffer.hpp -------------------------------------------------------------------------------- /include/caracal/statistics.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/statistics.hpp -------------------------------------------------------------------------------- /include/caracal/timestamp.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/timestamp.hpp -------------------------------------------------------------------------------- /include/caracal/utilities.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/include/caracal/utilities.hpp -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/mkdocs.yml -------------------------------------------------------------------------------- /src/builder.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/builder.cpp -------------------------------------------------------------------------------- /src/checksum.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/checksum.cpp -------------------------------------------------------------------------------- /src/lpm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/lpm.cpp -------------------------------------------------------------------------------- /src/packet.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/packet.cpp -------------------------------------------------------------------------------- /src/parser.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/parser.cpp -------------------------------------------------------------------------------- /src/pretty.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/pretty.cpp -------------------------------------------------------------------------------- /src/probe.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/probe.cpp -------------------------------------------------------------------------------- /src/prober.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/prober.cpp -------------------------------------------------------------------------------- /src/prober_config.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/prober_config.cpp -------------------------------------------------------------------------------- /src/protocols.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/protocols.cpp -------------------------------------------------------------------------------- /src/rate_limiter.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/rate_limiter.cpp -------------------------------------------------------------------------------- /src/reply.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/reply.cpp -------------------------------------------------------------------------------- /src/sender.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/sender.cpp -------------------------------------------------------------------------------- /src/sniffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/sniffer.cpp -------------------------------------------------------------------------------- /src/statistics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/statistics.cpp -------------------------------------------------------------------------------- /src/timestamp.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/timestamp.cpp -------------------------------------------------------------------------------- /src/utilities.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/src/utilities.cpp -------------------------------------------------------------------------------- /tests/builder_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/builder_test.cpp -------------------------------------------------------------------------------- /tests/checked_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/checked_test.cpp -------------------------------------------------------------------------------- /tests/checksum_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/checksum_test.cpp -------------------------------------------------------------------------------- /tests/environment.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/environment.hpp -------------------------------------------------------------------------------- /tests/lpm_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/lpm_test.cpp -------------------------------------------------------------------------------- /tests/parser_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/parser_test.cpp -------------------------------------------------------------------------------- /tests/pretty_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/pretty_test.cpp -------------------------------------------------------------------------------- /tests/probe_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/probe_test.cpp -------------------------------------------------------------------------------- /tests/prober_config_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/prober_config_test.cpp -------------------------------------------------------------------------------- /tests/prober_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/prober_test.cpp -------------------------------------------------------------------------------- /tests/protocols_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/protocols_test.cpp -------------------------------------------------------------------------------- /tests/rate_limiter_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/rate_limiter_test.cpp -------------------------------------------------------------------------------- /tests/statistics_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/statistics_test.cpp -------------------------------------------------------------------------------- /tests/timestamp_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/timestamp_test.cpp -------------------------------------------------------------------------------- /tests/utilities_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dioptra-io/caracal/HEAD/tests/utilities_test.cpp --------------------------------------------------------------------------------