├── .gitignore
├── COPYING
├── INSTALL
├── Makefile.am
├── README.md
├── autogen.sh
├── configure.ac
├── deconf.sh
├── dkms.conf
├── docs
├── README.md
├── _config.yml
├── _layouts
│ ├── default.html
│ └── redirect.html
├── css
│ ├── print.css
│ └── style.css
├── doc
│ ├── 20180123_TU_Jool.pdf
│ ├── AP_Jool.pdf
│ ├── fdl.txt
│ └── gpl-2.0.txt
├── en
│ ├── 464xlat.md
│ ├── about.md
│ ├── alpine-linux.md
│ ├── bib.md
│ ├── cheat-sheet.md
│ ├── config-atomic.md
│ ├── contact.md
│ ├── debian.md
│ ├── dns64.md
│ ├── documentation.md
│ ├── download.md
│ ├── eamt.md
│ ├── faq.md
│ ├── index.md
│ ├── install.md
│ ├── intro-jool.md
│ ├── intro-xlat.md
│ ├── license.md
│ ├── map-t.md
│ ├── mtu.md
│ ├── node-based-translation.md
│ ├── offloads.md
│ ├── opensuse.md
│ ├── openwrt.md
│ ├── pool4.md
│ ├── pool6.md
│ ├── pool6791.md
│ ├── run-eam.md
│ ├── run-linux.md
│ ├── run-mapt.md
│ ├── run-nat64.md
│ ├── run-persistent.md
│ ├── run-vanilla.md
│ ├── session-synchronization.md
│ ├── siit-dc-2xlat.md
│ ├── siit-dc.md
│ ├── single-interface.md
│ ├── ubuntu.md
│ ├── usr-clients.md
│ ├── usr-flags-address.md
│ ├── usr-flags-bib.md
│ ├── usr-flags-blacklist4.md
│ ├── usr-flags-denylist4.md
│ ├── usr-flags-eamt.md
│ ├── usr-flags-global.md
│ ├── usr-flags-instance.md
│ ├── usr-flags-plateaus.md
│ ├── usr-flags-pool4.md
│ ├── usr-flags-session.md
│ └── usr-flags-stats.md
├── images
│ ├── banner1.gif
│ ├── banner_100px.gif
│ ├── banner_50px.gif
│ ├── body.png
│ ├── bulb.svg
│ ├── email.svg
│ ├── flow
│ │ ├── 464-literal-en.svg
│ │ ├── 464-mirror-en.svg
│ │ ├── 464-normal-en.svg
│ │ ├── 464-sful-en.svg
│ │ ├── 464-sless-en.svg
│ │ ├── eam-en.svg
│ │ ├── mtu-frag-fail-en.svg
│ │ ├── mtu-frag-success-en.svg
│ │ ├── nat-en.svg
│ │ ├── pool4-simple1-en.svg
│ │ ├── pool4-simple2-en.svg
│ │ ├── pool4-simple3-en.svg
│ │ ├── siit-dc-2xlat.svg
│ │ ├── siit-dc-n4.svg
│ │ ├── siit-dc-n6.svg
│ │ ├── ss-disabled-n4.svg
│ │ ├── ss-disabled-n6.svg
│ │ ├── ss-disabled.svg
│ │ ├── ss-enabled-k.svg
│ │ ├── ss-enabled-mcast.svg
│ │ ├── stateful-en.svg
│ │ └── vanilla-en.svg
│ ├── global-max-iterations-0.png
│ ├── global-max-iterations-4096.png
│ ├── intro
│ │ ├── 464xlat
│ │ │ ├── flow.svg
│ │ │ └── network.svg
│ │ ├── eamt
│ │ │ ├── flow.svg
│ │ │ ├── network-v4.svg
│ │ │ ├── network-v6.svg
│ │ │ └── network.svg
│ │ ├── mapt
│ │ │ ├── flow-0.svg
│ │ │ ├── flow-1.svg
│ │ │ ├── flow-2.svg
│ │ │ ├── flow-3.svg
│ │ │ ├── flow-4.svg
│ │ │ ├── flow-5.svg
│ │ │ ├── network.svg
│ │ │ ├── port-division.svg
│ │ │ └── problem.svg
│ │ ├── napt
│ │ │ ├── flow-1.svg
│ │ │ ├── flow-2.svg
│ │ │ ├── flow-3.svg
│ │ │ ├── flow-4.svg
│ │ │ ├── impersonator.svg
│ │ │ ├── network-private.svg
│ │ │ ├── network-public.svg
│ │ │ └── network.svg
│ │ ├── nat64
│ │ │ ├── flow.svg
│ │ │ ├── full.svg
│ │ │ ├── impersonator.svg
│ │ │ ├── network-ipv4.svg
│ │ │ ├── network-ipv6.svg
│ │ │ └── network.svg
│ │ ├── packet-ipv4.svg
│ │ ├── packet-ipv6.svg
│ │ ├── siit-dc-2xlat
│ │ │ ├── flow.svg
│ │ │ ├── network-c4.svg
│ │ │ ├── network-s4.svg
│ │ │ └── network.svg
│ │ ├── siit-dc
│ │ │ ├── config.svg
│ │ │ ├── flow-v6.svg
│ │ │ ├── flow.svg
│ │ │ ├── network-ipv4.svg
│ │ │ ├── network-s6a.svg
│ │ │ ├── network-s6b.svg
│ │ │ └── network.svg
│ │ ├── traditional
│ │ │ ├── flow.svg
│ │ │ ├── network-v4.svg
│ │ │ ├── network-v6.svg
│ │ │ └── network.svg
│ │ └── xlator.svg
│ ├── jool.png
│ ├── logo-nic.png
│ ├── logo-tec.png
│ ├── mapt
│ │ ├── distribution.svg
│ │ ├── ea-bits.svg
│ │ ├── equations1.png
│ │ ├── equations2.png
│ │ ├── equations3.png
│ │ ├── flow-br-inbound.svg
│ │ ├── flow-br-outbound.svg
│ │ ├── flow-ce-inbound.svg
│ │ ├── flow-ce-outbound.svg
│ │ ├── map-addr-example.svg
│ │ ├── map-addr-format.svg
│ │ ├── port-division-2.svg
│ │ ├── port-division-3.svg
│ │ ├── port-number-2.svg
│ │ ├── port-number-3.svg
│ │ └── port-number-taboo.svg
│ ├── netfilter-filter.svg
│ ├── netfilter.svg
│ ├── network
│ │ ├── 464-needed.svg
│ │ ├── 464-network.svg
│ │ ├── alternate.svg
│ │ ├── eam.svg
│ │ ├── f-args.svg
│ │ ├── full-en.svg
│ │ ├── hbet-collapsed.svg
│ │ ├── hbet.svg
│ │ ├── instance-ns-example.svg
│ │ ├── joold-uturn.svg
│ │ ├── joold.svg
│ │ ├── mapt-core.svg
│ │ ├── mtu-example-1.svg
│ │ ├── mtu-example-3.svg
│ │ ├── nat-en.svg
│ │ ├── pool4-mark.svg
│ │ ├── rfc6791.svg
│ │ ├── siit-dc-2xlat.svg
│ │ ├── siit-dc.svg
│ │ ├── src-icmp6-better.svg
│ │ ├── ss.svg
│ │ ├── stateful.svg
│ │ └── vanilla.svg
│ ├── offload-none.svg
│ ├── offload-right.svg
│ ├── offload-router.svg
│ ├── plateaus-attempt1.svg
│ ├── plateaus-attempt2.svg
│ ├── plateaus-attempt3.svg
│ ├── plateaus-network.svg
│ ├── run-eam-firefox-4to6.png
│ ├── run-eam-firefox-6to4.png
│ ├── run-stateful-firefox-4to6.png
│ ├── run-vanilla-firefox-4to6.png
│ ├── run-vanilla-firefox-6to4.png
│ ├── triangle.svg
│ ├── tutorial
│ │ ├── bg
│ │ │ ├── 1-ip-address-show.svg
│ │ │ ├── 1-photo.jpg
│ │ │ ├── 1-startup.svg
│ │ │ ├── 2-startup.svg
│ │ │ ├── v4
│ │ │ │ ├── 1-laptop1.svg
│ │ │ │ ├── 1-laptop2.svg
│ │ │ │ ├── 1-ping.svg
│ │ │ │ ├── 2-addr-add.svg
│ │ │ │ ├── 2-addr-ping.svg
│ │ │ │ ├── 2-addr-show.svg
│ │ │ │ ├── 2-route-add.svg
│ │ │ │ ├── 2-route-show-1.svg
│ │ │ │ ├── 2-route-show-2.svg
│ │ │ │ ├── 2-startup.svg
│ │ │ │ ├── 2-sysctl-enable.svg
│ │ │ │ ├── 2-sysctl-enabled.svg
│ │ │ │ ├── 2-sysctl-ping.svg
│ │ │ │ └── 3.svg
│ │ │ └── v6
│ │ │ │ ├── 1-laptop1.svg
│ │ │ │ ├── 1-laptop2.svg
│ │ │ │ ├── 1-ping.svg
│ │ │ │ ├── 2-addr-add.svg
│ │ │ │ ├── 2-addr-ping.svg
│ │ │ │ ├── 2-addr-show.svg
│ │ │ │ ├── 2-route-add.svg
│ │ │ │ ├── 2-route-show-1.svg
│ │ │ │ ├── 2-route-show-2.svg
│ │ │ │ ├── 2-startup.svg
│ │ │ │ ├── 2-sysctl-enable.svg
│ │ │ │ ├── 2-sysctl-enabled.svg
│ │ │ │ ├── 2-sysctl-ping.svg
│ │ │ │ └── 3.svg
│ │ ├── dns64
│ │ │ ├── network-joined.svg
│ │ │ ├── network-separate.svg
│ │ │ ├── outcome-joined.svg
│ │ │ └── outcome-separate.svg
│ │ └── mapt
│ │ │ ├── br.svg
│ │ │ ├── ce11b.svg
│ │ │ └── network.svg
│ ├── usr-dropaddr-1.svg
│ ├── usr-dropaddr-2.svg
│ ├── usr-dropaddr-3.svg
│ ├── usr-session.svg
│ └── warning.svg
├── index.md
├── obj
│ ├── 464xlat
│ │ ├── ipv4-n4.pcapng
│ │ ├── ipv4-n6.pcapng
│ │ ├── ipv4-plat.pcapng
│ │ ├── ipv4-r.pcapng
│ │ ├── ipv6-n4.pcapng
│ │ ├── ipv6-n6.pcapng
│ │ ├── ipv6-plat.pcapng
│ │ └── ipv6-r.pcapng
│ ├── atomic-double-frag.pcapng
│ ├── bib-tcp.csv
│ ├── eamt.csv
│ ├── session.csv
│ ├── stats.csv
│ └── tut2.1-wireshark.wsk
└── scripts
│ └── distro-code.js
├── src
├── abbreviations.md
├── common
│ ├── Makefile.am
│ ├── config.c
│ ├── config.h
│ ├── constants.h
│ ├── global.c
│ ├── global.h
│ ├── iptables.h
│ ├── session.h
│ ├── stats.h
│ ├── types.c
│ ├── types.h
│ └── xlat.h
├── conventions.md
├── directions.md
├── mod
│ ├── Makefile
│ ├── common
│ │ ├── Kbuild
│ │ ├── Makefile
│ │ ├── address.c
│ │ ├── address.h
│ │ ├── address_xlat.c
│ │ ├── address_xlat.h
│ │ ├── atomic_config.c
│ │ ├── atomic_config.h
│ │ ├── compat_32_64.h
│ │ ├── core.c
│ │ ├── core.h
│ │ ├── db
│ │ │ ├── bib
│ │ │ │ ├── db.c
│ │ │ │ ├── db.h
│ │ │ │ ├── entry.c
│ │ │ │ ├── entry.h
│ │ │ │ ├── pkt_queue.c
│ │ │ │ └── pkt_queue.h
│ │ │ ├── denylist4.c
│ │ │ ├── denylist4.h
│ │ │ ├── eam.c
│ │ │ ├── eam.h
│ │ │ ├── global.c
│ │ │ ├── global.h
│ │ │ ├── pool4
│ │ │ │ ├── db.c
│ │ │ │ ├── db.h
│ │ │ │ ├── empty.c
│ │ │ │ ├── empty.h
│ │ │ │ ├── rfc6056.c
│ │ │ │ └── rfc6056.h
│ │ │ ├── rbtree.c
│ │ │ ├── rbtree.h
│ │ │ ├── rfc6791v4.c
│ │ │ ├── rfc6791v4.h
│ │ │ ├── rfc6791v6.c
│ │ │ └── rfc6791v6.h
│ │ ├── dev.c
│ │ ├── dev.h
│ │ ├── error_pool.c
│ │ ├── error_pool.h
│ │ ├── icmp_wrapper.c
│ │ ├── icmp_wrapper.h
│ │ ├── init.c
│ │ ├── init.h
│ │ ├── ipv6_hdr_iterator.c
│ │ ├── ipv6_hdr_iterator.h
│ │ ├── joold.c
│ │ ├── joold.h
│ │ ├── kernel_hook.h
│ │ ├── kernel_hook_iptables.c
│ │ ├── kernel_hook_netfilter.c
│ │ ├── linux_version.h
│ │ ├── log.c
│ │ ├── log.h
│ │ ├── nl
│ │ │ ├── address.c
│ │ │ ├── address.h
│ │ │ ├── atomic_config.c
│ │ │ ├── atomic_config.h
│ │ │ ├── attribute.c
│ │ │ ├── attribute.h
│ │ │ ├── bib.c
│ │ │ ├── bib.h
│ │ │ ├── denylist4.c
│ │ │ ├── denylist4.h
│ │ │ ├── eam.c
│ │ │ ├── eam.h
│ │ │ ├── global.c
│ │ │ ├── global.h
│ │ │ ├── instance.c
│ │ │ ├── instance.h
│ │ │ ├── joold.c
│ │ │ ├── joold.h
│ │ │ ├── nl_common.c
│ │ │ ├── nl_common.h
│ │ │ ├── nl_core.c
│ │ │ ├── nl_core.h
│ │ │ ├── nl_handler.c
│ │ │ ├── nl_handler.h
│ │ │ ├── pool4.c
│ │ │ ├── pool4.h
│ │ │ ├── session.c
│ │ │ ├── session.h
│ │ │ ├── stats.c
│ │ │ └── stats.h
│ │ ├── packet.c
│ │ ├── packet.h
│ │ ├── rcu.h
│ │ ├── rfc6052.c
│ │ ├── rfc6052.h
│ │ ├── rfc7915
│ │ │ ├── 4to6.c
│ │ │ ├── 4to6.h
│ │ │ ├── 6to4.c
│ │ │ ├── 6to4.h
│ │ │ ├── common.c
│ │ │ ├── common.h
│ │ │ ├── core.c
│ │ │ └── core.h
│ │ ├── route.h
│ │ ├── route_out.c
│ │ ├── rtrie.c
│ │ ├── rtrie.h
│ │ ├── skbuff.c
│ │ ├── skbuff.h
│ │ ├── stats.c
│ │ ├── stats.h
│ │ ├── steps
│ │ │ ├── compute_outgoing_tuple.c
│ │ │ ├── compute_outgoing_tuple.h
│ │ │ ├── compute_outgoing_tuple_siit.c
│ │ │ ├── determine_incoming_tuple.c
│ │ │ ├── determine_incoming_tuple.h
│ │ │ ├── filtering_and_updating.c
│ │ │ ├── filtering_and_updating.h
│ │ │ ├── handling_hairpinning_nat64.c
│ │ │ ├── handling_hairpinning_nat64.h
│ │ │ ├── handling_hairpinning_siit.c
│ │ │ ├── handling_hairpinning_siit.h
│ │ │ ├── send_packet.c
│ │ │ └── send_packet.h
│ │ ├── timer.c
│ │ ├── timer.h
│ │ ├── trace.c
│ │ ├── trace.h
│ │ ├── translation_state.c
│ │ ├── translation_state.h
│ │ ├── types.c
│ │ ├── types.h
│ │ ├── wkmalloc.c
│ │ ├── wkmalloc.h
│ │ ├── wrapper-config.c
│ │ ├── wrapper-global.c
│ │ ├── wrapper-types.c
│ │ ├── xlator.c
│ │ └── xlator.h
│ ├── nat64
│ │ ├── Makefile
│ │ └── jool.c
│ └── siit
│ │ ├── Makefile
│ │ └── jool_siit.c
└── usr
│ ├── INSTALL
│ ├── Makefile.am
│ ├── README.md
│ ├── argp
│ ├── Makefile.am
│ ├── command.c
│ ├── command.h
│ ├── dns.c
│ ├── dns.h
│ ├── joold
│ │ ├── modsocket.c
│ │ ├── modsocket.h
│ │ ├── netsocket.c
│ │ ├── netsocket.h
│ │ ├── statsocket.c
│ │ └── statsocket.h
│ ├── log.c
│ ├── log.h
│ ├── main.c
│ ├── main.h
│ ├── requirements.c
│ ├── requirements.h
│ ├── userspace-types.c
│ ├── userspace-types.h
│ ├── wargp.c
│ ├── wargp.h
│ ├── wargp
│ │ ├── address.c
│ │ ├── address.h
│ │ ├── bib.c
│ │ ├── bib.h
│ │ ├── denylist4.c
│ │ ├── denylist4.h
│ │ ├── eamt.c
│ │ ├── eamt.h
│ │ ├── file.c
│ │ ├── file.h
│ │ ├── global.c
│ │ ├── global.h
│ │ ├── instance.c
│ │ ├── instance.h
│ │ ├── pool4.c
│ │ ├── pool4.h
│ │ ├── session.c
│ │ ├── session.h
│ │ ├── stats.c
│ │ └── stats.h
│ ├── xlator_type.c
│ └── xlator_type.h
│ ├── iptables
│ ├── Makefile
│ ├── common.c
│ ├── libxt_JOOL.c
│ ├── libxt_JOOL.man
│ ├── libxt_JOOL_SIIT.c
│ └── libxt_JOOL_SIIT.man
│ ├── joold
│ ├── Makefile.am
│ ├── joold.8
│ ├── joold.c
│ ├── json.c
│ ├── json.h
│ └── log.h
│ ├── nat64
│ ├── Makefile.am
│ ├── jool.8
│ ├── jool.bash
│ └── main-nat64.c
│ ├── nl
│ ├── Makefile.am
│ ├── address.c
│ ├── address.h
│ ├── attribute.c
│ ├── attribute.h
│ ├── bib.c
│ ├── bib.h
│ ├── common.c
│ ├── common.h
│ ├── core.c
│ ├── core.h
│ ├── denylist4.c
│ ├── denylist4.h
│ ├── eamt.c
│ ├── eamt.h
│ ├── file.c
│ ├── file.h
│ ├── global.c
│ ├── global.h
│ ├── instance.c
│ ├── instance.h
│ ├── joold.c
│ ├── joold.h
│ ├── json.c
│ ├── json.h
│ ├── pool4.c
│ ├── pool4.h
│ ├── session.c
│ ├── session.h
│ ├── stats.c
│ ├── stats.h
│ ├── wrapper-config.c
│ ├── wrapper-global.c
│ └── wrapper-types.c
│ ├── siit
│ ├── Makefile.am
│ ├── jool_siit.8
│ ├── jool_siit.bash
│ └── main-siit.c
│ └── util
│ ├── Makefile.am
│ ├── cJSON.c
│ ├── cJSON.h
│ ├── file.c
│ ├── file.h
│ ├── result.c
│ ├── result.h
│ ├── str_utils.c
│ └── str_utils.h
└── test
├── client-test.sh
├── compilation_test
├── README.md
├── compile-jool.sh
└── prepare-kernels.sh
├── graybox
├── Makefile.am
├── README.md
├── autogen.sh
├── common
│ └── graybox-types.h
├── configure.ac
├── mod
│ ├── Kbuild
│ ├── Makefile
│ ├── diff.c
│ ├── diff.h
│ ├── expecter.c
│ ├── expecter.h
│ ├── genetlink.c
│ ├── genetlink.h
│ ├── log.h
│ ├── nf_hook.c
│ ├── nl_handler.c
│ ├── nl_handler.h
│ ├── sender.c
│ ├── sender.h
│ └── util.h
├── test-suite
│ ├── README.md
│ ├── namespace-create.sh
│ ├── namespace-destroy.sh
│ ├── nat64
│ │ ├── end-jool.sh
│ │ ├── end-n4.sh
│ │ ├── end-n6.sh
│ │ ├── end.sh
│ │ ├── manual
│ │ │ ├── README.md
│ │ │ ├── frag
│ │ │ │ ├── icmp4-expected.pkt
│ │ │ │ ├── icmp4-test.pkt
│ │ │ │ ├── icmp6-expected.pkt
│ │ │ │ ├── icmp6-session-expected.pkt
│ │ │ │ ├── icmp6-session-test.pkt
│ │ │ │ ├── icmp6-test.pkt
│ │ │ │ ├── minmtu6-big-test.pkt
│ │ │ │ ├── minmtu6-big0-expected.pkt
│ │ │ │ └── minmtu6-big1-expected.pkt
│ │ │ ├── icmp-error
│ │ │ │ ├── bibless-expected.pkt
│ │ │ │ ├── bibless-test.pkt
│ │ │ │ ├── ptb46-expected.pkt
│ │ │ │ ├── ptb46-test.pkt
│ │ │ │ ├── ptb64-expected.pkt
│ │ │ │ └── ptb64-test.pkt
│ │ │ ├── issue132
│ │ │ │ ├── expected-off.pkt
│ │ │ │ ├── expected-on.pkt
│ │ │ │ └── test.pkt
│ │ │ ├── ptb46
│ │ │ │ ├── expected.pkt
│ │ │ │ ├── session-expected.pkt
│ │ │ │ ├── session-test.pkt
│ │ │ │ └── test.pkt
│ │ │ ├── ptb64
│ │ │ │ ├── expected.pkt
│ │ │ │ ├── session-expected.pkt
│ │ │ │ ├── session-test.pkt
│ │ │ │ └── test.pkt
│ │ │ ├── ptb66
│ │ │ │ ├── expected.pkt
│ │ │ │ ├── session-expected.pkt
│ │ │ │ ├── session-test.pkt
│ │ │ │ └── test.pkt
│ │ │ └── so
│ │ │ │ ├── 46-receiver.pkt
│ │ │ │ ├── 46-sender.pkt
│ │ │ │ ├── 66-receiver.pkt
│ │ │ │ ├── 66-sender.pkt
│ │ │ │ ├── success-receiver.pkt
│ │ │ │ ├── success-sender4.pkt
│ │ │ │ └── success-sender6.pkt
│ │ ├── network.md
│ │ ├── pktgen
│ │ │ ├── README.md
│ │ │ ├── receiver
│ │ │ │ ├── 4-icmp4err-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4err-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-udp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-udp-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6err-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6err-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-udp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-udp-csumok-df-nofrag.pkt
│ │ │ │ └── 6-udp-csumok-nodf-nofrag.pkt
│ │ │ └── sender
│ │ │ │ ├── 4-icmp4err-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4err-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-udp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-udp-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6err-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6err-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-udp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-udp-csumok-df-nofrag.pkt
│ │ │ │ └── 6-udp-csumok-nodf-nofrag.pkt
│ │ ├── setup-jool.sh
│ │ ├── setup-n4.sh
│ │ ├── setup-n6.sh
│ │ ├── setup.sh
│ │ └── test.sh
│ ├── run.sh
│ ├── siit
│ │ ├── 7915
│ │ │ ├── README.md
│ │ │ ├── aae1.pkt
│ │ │ ├── aat1.pkt
│ │ │ ├── aat2.pkt
│ │ │ ├── aat3.pkt
│ │ │ ├── abe1.pkt
│ │ │ ├── abe2.pkt
│ │ │ ├── abt1.pkt
│ │ │ ├── abt2.pkt
│ │ │ ├── abt3.pkt
│ │ │ ├── ace1.pkt
│ │ │ ├── ace2.pkt
│ │ │ ├── ace3.pkt
│ │ │ ├── ace4.pkt
│ │ │ ├── ace5.pkt
│ │ │ ├── ace6.pkt
│ │ │ ├── act1.pkt
│ │ │ ├── act2.pkt
│ │ │ ├── act3.pkt
│ │ │ ├── act4.pkt
│ │ │ ├── act5.pkt
│ │ │ ├── act6.pkt
│ │ │ ├── ade1.pkt
│ │ │ ├── ade2.pkt
│ │ │ ├── adt1.pkt
│ │ │ ├── adt2.pkt
│ │ │ ├── bae1.pkt
│ │ │ ├── bat1.pkt
│ │ │ ├── bbe1.pkt
│ │ │ ├── bbt1.pkt
│ │ │ ├── bce1.pkt
│ │ │ ├── bct1.pkt
│ │ │ ├── bde1.pkt
│ │ │ ├── bdt1.pkt
│ │ │ ├── bee1.pkt
│ │ │ ├── bet1.pkt
│ │ │ ├── cae1.pkt
│ │ │ ├── cae2.pkt
│ │ │ ├── cat1.pkt
│ │ │ ├── cat2.pkt
│ │ │ ├── cbe1.pkt
│ │ │ ├── cbt1.pkt
│ │ │ ├── cce1.pkt
│ │ │ ├── cce2.pkt
│ │ │ ├── cct1.pkt
│ │ │ ├── cde1.pkt
│ │ │ ├── cdt1.pkt
│ │ │ ├── cee1.pkt
│ │ │ ├── cet1.pkt
│ │ │ ├── cet2.pkt
│ │ │ ├── cfe1.pkt
│ │ │ ├── cfe2.pkt
│ │ │ ├── cft1.pkt
│ │ │ ├── cge1.pkt
│ │ │ ├── cge2.pkt
│ │ │ ├── cgt1.pkt
│ │ │ ├── cgt2.pkt
│ │ │ ├── che1.pkt
│ │ │ ├── cht1.pkt
│ │ │ ├── cie1.pkt
│ │ │ ├── cit1.pkt
│ │ │ ├── cje1.pkt
│ │ │ ├── cje2.pkt
│ │ │ ├── cje3.pkt
│ │ │ ├── cje4.pkt
│ │ │ ├── cjt1.pkt
│ │ │ ├── cjt2.pkt
│ │ │ ├── cjt3.pkt
│ │ │ ├── cjt4.pkt
│ │ │ ├── dae1.pkt
│ │ │ ├── dat1.pkt
│ │ │ ├── dbe1.pkt
│ │ │ ├── dbe2.pkt
│ │ │ ├── dbt1.pkt
│ │ │ ├── dbt2.pkt
│ │ │ ├── dbt3.pkt
│ │ │ ├── eae1.pkt
│ │ │ ├── eat1.pkt
│ │ │ ├── ebe1.pkt
│ │ │ ├── ece1.pkt
│ │ │ ├── ect1.pkt
│ │ │ ├── fae1.pkt
│ │ │ ├── fat1.pkt
│ │ │ ├── fbe1.pkt
│ │ │ ├── fbt1.pkt
│ │ │ ├── gae1.pkt
│ │ │ ├── gat1.pkt
│ │ │ ├── hae1.pkt
│ │ │ ├── hae2.pkt
│ │ │ ├── hat1.pkt
│ │ │ ├── hat2.pkt
│ │ │ ├── ia1e.pkt
│ │ │ ├── ia1t.pkt
│ │ │ ├── ia2e.pkt
│ │ │ ├── ia2t.pkt
│ │ │ ├── ib1e.pkt
│ │ │ ├── ib1t.pkt
│ │ │ ├── ib2e.pkt
│ │ │ ├── ib2t.pkt
│ │ │ ├── ib3e.pkt
│ │ │ ├── ib3t.pkt
│ │ │ ├── ic1e.pkt
│ │ │ ├── ic1t.pkt
│ │ │ ├── ic2e.pkt
│ │ │ ├── ic2t.pkt
│ │ │ ├── ic3e.pkt
│ │ │ ├── ic3t.pkt
│ │ │ ├── ic4e.pkt
│ │ │ ├── ic4t.pkt
│ │ │ ├── ic5e.pkt
│ │ │ ├── ic5t.pkt
│ │ │ ├── ic6e.pkt
│ │ │ ├── ic6t.pkt
│ │ │ ├── ic7e.pkt
│ │ │ ├── ic7t.pkt
│ │ │ ├── idae.pkt
│ │ │ ├── idat.pkt
│ │ │ ├── idbe.pkt
│ │ │ ├── idbt.pkt
│ │ │ ├── idce.pkt
│ │ │ ├── idct.pkt
│ │ │ ├── idde.pkt
│ │ │ ├── iddt.pkt
│ │ │ ├── idee.pkt
│ │ │ ├── idet.pkt
│ │ │ ├── idfe.pkt
│ │ │ ├── idft.pkt
│ │ │ ├── idge.pkt
│ │ │ ├── idgt.pkt
│ │ │ ├── idhe.pkt
│ │ │ ├── idht.pkt
│ │ │ ├── idie.pkt
│ │ │ ├── idit.pkt
│ │ │ ├── idke.pkt
│ │ │ ├── idkt.pkt
│ │ │ ├── idye.pkt
│ │ │ ├── idyt.pkt
│ │ │ ├── idze.pkt
│ │ │ ├── idzt.pkt
│ │ │ ├── jae.pkt
│ │ │ ├── jat.pkt
│ │ │ ├── jbae1.pkt
│ │ │ ├── jbae2.pkt
│ │ │ ├── jbat.pkt
│ │ │ ├── jbbe.pkt
│ │ │ ├── jbbt.pkt
│ │ │ ├── jcae1.pkt
│ │ │ ├── jcae2.pkt
│ │ │ ├── jcat.pkt
│ │ │ ├── jcbe.pkt
│ │ │ └── jcbt.pkt
│ │ ├── end-jool.sh
│ │ ├── end-n4.sh
│ │ ├── end-n6.sh
│ │ ├── end.sh
│ │ ├── manual
│ │ │ ├── 6791v46e-empty.pkt
│ │ │ ├── 6791v46e.pkt
│ │ │ ├── 6791v46t.pkt
│ │ │ ├── 6791v64e-empty.pkt
│ │ │ ├── 6791v64e.pkt
│ │ │ ├── 6791v64t.pkt
│ │ │ ├── 6791v66e.pkt
│ │ │ ├── 6791v66t.pkt
│ │ │ └── README.md
│ │ ├── network.md
│ │ ├── pktgen
│ │ │ ├── README.md
│ │ │ ├── receiver
│ │ │ │ ├── 4-icmp4err-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4err-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-frag0.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-frag1.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-frag2.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-frag0.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-frag1.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-frag2.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-udp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-frag0.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-frag1.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-frag2.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-udp-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-frag0.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-frag1.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-frag2.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6err-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6err-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-frag0.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-frag1.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-frag2.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-frag0.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-frag1.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-frag2.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-udp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-frag0.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-frag1.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-frag2.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-udp-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-udp-csumok-nodf-frag0.pkt
│ │ │ │ ├── 6-udp-csumok-nodf-frag1.pkt
│ │ │ │ ├── 6-udp-csumok-nodf-frag2.pkt
│ │ │ │ └── 6-udp-csumok-nodf-nofrag.pkt
│ │ │ └── sender
│ │ │ │ ├── 4-icmp4err-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4err-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-icmp4info-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-frag0.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-frag1.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-frag2.pkt
│ │ │ │ ├── 4-tcp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-frag0.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-frag1.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-frag2.pkt
│ │ │ │ ├── 4-tcp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 4-udp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-frag0.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-frag1.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-frag2.pkt
│ │ │ │ ├── 4-udp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 4-udp-csumok-df-nofrag.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-frag0.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-frag1.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-frag2.pkt
│ │ │ │ ├── 4-udp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6err-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6err-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-icmp6info-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-frag0.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-frag1.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-frag2.pkt
│ │ │ │ ├── 6-tcp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-frag0.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-frag1.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-frag2.pkt
│ │ │ │ ├── 6-tcp-csumok-nodf-nofrag.pkt
│ │ │ │ ├── 6-udp-csumfail-df-nofrag.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-frag0.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-frag1.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-frag2.pkt
│ │ │ │ ├── 6-udp-csumfail-nodf-nofrag.pkt
│ │ │ │ ├── 6-udp-csumok-df-nofrag.pkt
│ │ │ │ ├── 6-udp-csumok-nodf-frag0.pkt
│ │ │ │ ├── 6-udp-csumok-nodf-frag1.pkt
│ │ │ │ ├── 6-udp-csumok-nodf-frag2.pkt
│ │ │ │ └── 6-udp-csumok-nodf-nofrag.pkt
│ │ ├── setup-jool.sh
│ │ ├── setup-n4.sh
│ │ ├── setup-n6.sh
│ │ ├── setup.sh
│ │ └── test.sh
│ └── wait.sh
└── usr
│ ├── Makefile.am
│ ├── command
│ ├── common.c
│ ├── common.h
│ ├── expect.c
│ ├── expect.h
│ ├── send.c
│ ├── send.h
│ ├── stats.c
│ └── stats.h
│ ├── genetlink.c
│ ├── genetlink.h
│ ├── graybox.7
│ ├── graybox.c
│ ├── log.c
│ └── log.h
├── jool-regression
├── README.md
├── config
├── jool-compile.sh
├── jool-git.sh
├── jool-graybox.sh
├── jool-init.sh
├── jool-test.sh
└── jool-unit.sh
├── nl-fragmentation
├── kern2usr.sh
└── usr2kern.sh
└── unit
├── Makefile
├── README.md
├── addr
├── Makefile
└── address_test.c
├── bibdb
├── Makefile
└── bibdb_test.c
├── bibtable
├── Makefile
└── bibtable_test.c
├── eamt
├── Makefile
└── eamt_test.c
├── filtering
├── Makefile
├── filtering_and_updating_test.c
└── impersonator.c
├── framework
├── bib.c
├── bib.h
├── send_packet.h
├── skb_generator.c
├── skb_generator.h
├── types.c
├── types.h
├── unit_test.c
└── unit_test.h
├── impersonator
├── bib.c
├── icmp_wrapper.c
├── nat64.c
├── nf_hook.c
├── route.c
├── send_packet.c
├── siit.c
├── stats.c
└── xlator.c
├── iterator
├── Makefile
└── ipv6_hdr_iterator_test.c
├── joold
├── Makefile
└── joold_test.c
├── joolns
├── Makefile
├── impersonator.c
└── joolns_test.c
├── page
├── Makefile
├── impersonator.c
└── page_test.c
├── pkt
├── Makefile
└── packet_test.c
├── pool4-iterations
├── Makefile
├── full-test.sh
└── iterations.c
├── pool4db
├── Makefile
├── impersonator.c
└── pool4db_test.c
├── rbtree
├── Makefile
└── rbtree_test.c
├── rfc6052
├── Makefile
└── rfc6052_test.c
├── rfc6056
├── Makefile
└── rfc6056_test.c
├── sessiondb
├── Makefile
└── sessiondb_test.c
├── sessiontable
├── Makefile
└── sessiontable_test.c
├── test.sh
├── translate
├── Makefile
└── translate_packet_test.c
└── types
├── Makefile
└── types_test.c
/INSTALL:
--------------------------------------------------------------------------------
1 | See https://nicmx.github.io/Jool/en/install.html
2 |
3 | Quick version:
4 |
5 | ./autogen.sh # If this script does not exist, skip it.
6 | ./configure
7 | make
8 | sudo make install # userspace tools
9 | sudo dkms install . # kernel modules
10 |
--------------------------------------------------------------------------------
/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 |
3 | # dpkg-buildpackage uses SUBDIRS during the package build.
4 | #
5 | # We don't want dpkg-buildpackage to build src/mod, because any kernel update
6 | # will render the resulting binaries obsolete and useless. What we want is to
7 | # ship the source code. Once installed, DKMS will automatically recompile it
8 | # every time the kernel is updated.
9 | #
10 | # So we want to include src/mod in the distribution, but omit its compilation by
11 | # default. This arrangement of SUBDIRS and DIST_SUBDIRS does that.
12 | SUBDIRS = src/common src/usr
13 | DIST_SUBDIRS = src/common src/mod src/usr
14 |
15 | # Needed by libtoolize. (Othewise autoreconf complains.)
16 | ACLOCAL_AMFLAGS=-I m4
17 |
18 | EXTRA_DIST=dkms.conf README.md
19 |
--------------------------------------------------------------------------------
/autogen.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Hello.
4 | # Run this file to generate the configure script.
5 | # You'll need autoconf, automake and libtool installed!
6 |
7 | aclocal --install
8 | autoreconf --install
9 |
--------------------------------------------------------------------------------
/deconf.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | git clean -dfx \
4 | -e .cproject \
5 | -e .project \
6 | -e .settings \
7 | -e .metadata \
8 | -e Debug/ \
9 | -e sandbox/
10 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # Jool's website
2 |
3 | This directory contains the source files of Jool's site and documentation.
4 |
5 | Github automatically compiles this, and it's available at https://nicmx.github.io/Jool.
6 |
7 | You can compile the documentation yourself by running [Jekyll](http://jekyllrb.com/) right here.
8 |
9 | ```bash
10 | $ jekyll build
11 | ```
12 |
13 | Have a look at your generated files in the new `_site/` directory. (Start at `index.html`.)
14 |
15 |
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | markdown: kramdown
2 | baseurl: /Jool
3 | repository-url: https://github.com/NICMx/Jool
4 | latest-version: 4.1.14
5 |
6 | rfc-siit: https://tools.ietf.org/html/rfc7915
7 | draft-siit-eam: https://tools.ietf.org/html/rfc7757
8 | draft-siit-dc: https://tools.ietf.org/html/rfc7755
9 | draft-siit-dc-2xlat: https://tools.ietf.org/html/rfc7756
10 | draft-nat64-port-allocation: https://tools.ietf.org/html/draft-ietf-sunset4-nat64-port-allocation-02
11 | draft-deprecate-atomfrag-generation: https://tools.ietf.org/html/rfc8021
12 |
--------------------------------------------------------------------------------
/docs/_layouts/redirect.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Redirect
7 |
8 |
9 | Redirecting to {{ page.redirect_link }}...
10 |
11 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/css/print.css:
--------------------------------------------------------------------------------
1 | /* Remove unwanted elements */
2 | #header, #footer, #sidebar_navigation, #language_selector {
3 | display: none;
4 | }
5 |
6 | .worklogo img {
7 | margin: 0 auto;
8 | display:block;
9 | width: 30%;
10 | }
11 |
12 | a {
13 | text-decoration: none;
14 | }
15 |
--------------------------------------------------------------------------------
/docs/doc/20180123_TU_Jool.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/doc/20180123_TU_Jool.pdf
--------------------------------------------------------------------------------
/docs/doc/AP_Jool.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/doc/AP_Jool.pdf
--------------------------------------------------------------------------------
/docs/en/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | language: en
3 | layout: default
4 | category: About
5 | title: About
6 | ---
7 |
8 | # About
9 |
10 | Jool is an Open Source [IPv4/IPv6 Translator](intro-xlat.html), funded by NIC Mexico and co-developed with ITESM.
11 |
12 | Jool's source code is released under the [GPLv2](../doc/gpl-2.0.txt), and its documentation is released under the [GFDL 1.3](../doc/fdl.txt).
13 |
14 |
--------------------------------------------------------------------------------
/docs/en/contact.md:
--------------------------------------------------------------------------------
1 | ---
2 | language: en
3 | layout: default
4 | category: Contact
5 | title: Contact
6 | ---
7 |
8 | # Contact
9 |
10 | Our bug tracker is [Github issues]({{ site.repository-url }}/issues).
11 |
12 | For support and/or general discussion, try our [chat on Matrix](https://matrix.ungleich.ch/#/room/#jool:ungleich.ch) or the [jool-list@nic.mx mailing list](https://mail-lists.nic.mx/listas/listinfo/jool-list).
13 |
14 | If you want to be notified when new releases are available, [watch the project on Github](https://github.com/NICMx/Jool) or subscribe to the [news mailing list](https://mail-lists.nic.mx/listas/listinfo/jool-news).
15 |
16 | There's also [jool@nic.mx](mailto:jool@nic.mx), which is a mail alias you can use to reach us developers only.
17 |
18 |
--------------------------------------------------------------------------------
/docs/en/license.md:
--------------------------------------------------------------------------------
1 | ---
2 | language: en
3 | layout: default
4 | category: License
5 | title: Licenses
6 | ---
7 |
8 | # Licenses
9 |
10 | - Jool's source code is released under the [GNU General Public License, Version 2](../doc/gpl-2.0.txt).
11 | - Jool's documentation is released under the [GNU Free Documentation License, Version 1.3](../doc/fdl.txt).
12 |
13 |
--------------------------------------------------------------------------------
/docs/en/ubuntu.md:
--------------------------------------------------------------------------------
1 | ---
2 | language: en
3 | layout: default
4 | category: Documentation
5 | title: Ubuntu
6 | ---
7 |
8 | [Documentation](documentation.html) > [Installation](documentation.html#installation) > Ubuntu
9 |
10 | # Jool in Ubuntu (20.04+)
11 |
12 | At time of writing, this installs Jool 4.0.7:
13 |
14 | sudo apt install jool-dkms jool-tools
15 |
16 | It's always a bit outdated. If you prefer a newer version, consider using the [standalone Debian packages](debian.html#standalone-package) instead. You can also [compile from source](install.html).
17 |
18 | Whichever method you chose, if you installed via `apt`, you can uninstall as usual:
19 |
20 | sudo apt remove jool-dkms jool-tools
21 |
22 |
--------------------------------------------------------------------------------
/docs/en/usr-flags-blacklist4.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: redirect
3 | redirect_link: usr-flags-denylist4.html
4 | ---
5 |
6 |
--------------------------------------------------------------------------------
/docs/images/banner1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/banner1.gif
--------------------------------------------------------------------------------
/docs/images/banner_100px.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/banner_100px.gif
--------------------------------------------------------------------------------
/docs/images/banner_50px.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/banner_50px.gif
--------------------------------------------------------------------------------
/docs/images/body.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/body.png
--------------------------------------------------------------------------------
/docs/images/global-max-iterations-0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/global-max-iterations-0.png
--------------------------------------------------------------------------------
/docs/images/global-max-iterations-4096.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/global-max-iterations-4096.png
--------------------------------------------------------------------------------
/docs/images/jool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/jool.png
--------------------------------------------------------------------------------
/docs/images/logo-nic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/logo-nic.png
--------------------------------------------------------------------------------
/docs/images/logo-tec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/logo-tec.png
--------------------------------------------------------------------------------
/docs/images/mapt/equations1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/mapt/equations1.png
--------------------------------------------------------------------------------
/docs/images/mapt/equations2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/mapt/equations2.png
--------------------------------------------------------------------------------
/docs/images/mapt/equations3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/mapt/equations3.png
--------------------------------------------------------------------------------
/docs/images/run-eam-firefox-4to6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/run-eam-firefox-4to6.png
--------------------------------------------------------------------------------
/docs/images/run-eam-firefox-6to4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/run-eam-firefox-6to4.png
--------------------------------------------------------------------------------
/docs/images/run-stateful-firefox-4to6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/run-stateful-firefox-4to6.png
--------------------------------------------------------------------------------
/docs/images/run-vanilla-firefox-4to6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/run-vanilla-firefox-4to6.png
--------------------------------------------------------------------------------
/docs/images/run-vanilla-firefox-6to4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/run-vanilla-firefox-6to4.png
--------------------------------------------------------------------------------
/docs/images/tutorial/bg/1-photo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/images/tutorial/bg/1-photo.jpg
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: redirect
3 | redirect_link: en/index.html
4 | ---
5 |
6 |
--------------------------------------------------------------------------------
/docs/obj/464xlat/ipv4-n4.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/464xlat/ipv4-n4.pcapng
--------------------------------------------------------------------------------
/docs/obj/464xlat/ipv4-n6.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/464xlat/ipv4-n6.pcapng
--------------------------------------------------------------------------------
/docs/obj/464xlat/ipv4-plat.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/464xlat/ipv4-plat.pcapng
--------------------------------------------------------------------------------
/docs/obj/464xlat/ipv4-r.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/464xlat/ipv4-r.pcapng
--------------------------------------------------------------------------------
/docs/obj/464xlat/ipv6-n4.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/464xlat/ipv6-n4.pcapng
--------------------------------------------------------------------------------
/docs/obj/464xlat/ipv6-n6.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/464xlat/ipv6-n6.pcapng
--------------------------------------------------------------------------------
/docs/obj/464xlat/ipv6-plat.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/464xlat/ipv6-plat.pcapng
--------------------------------------------------------------------------------
/docs/obj/464xlat/ipv6-r.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/464xlat/ipv6-r.pcapng
--------------------------------------------------------------------------------
/docs/obj/atomic-double-frag.pcapng:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/atomic-double-frag.pcapng
--------------------------------------------------------------------------------
/docs/obj/bib-tcp.csv:
--------------------------------------------------------------------------------
1 | Protocol,IPv6 Address,IPv6 L4-ID,IPv4 Address,IPv4 L4-ID,Static?
2 | TCP,6::6,6,4.4.4.4,4,1
3 | TCP,6::6,66,4.4.4.4,44,1
4 | TCP,6::6,1234,4.4.4.4,1234,0
5 |
--------------------------------------------------------------------------------
/docs/obj/eamt.csv:
--------------------------------------------------------------------------------
1 | IPv6 Prefix,IPv4 Prefix
2 | 64:ff9b::/127,192.0.2.192/31
3 | 2001:db8:dddd::/64,192.0.2.128/26
4 | 2001:db8:cccc::/124,192.0.2.16/28
5 | 2001:db8:bbbb::b/128,192.0.2.2/32
6 | 2001:db8:aaaa::/128,192.0.2.1/32
7 |
--------------------------------------------------------------------------------
/docs/obj/session.csv:
--------------------------------------------------------------------------------
1 | Protocol,IPv6 Remote Address,IPv6 Remote L4-ID,IPv6 Local Address,IPv6 Local L4-ID,IPv4 Local Address,IPv4 Local L4-ID,IPv4 Remote Address,IPv4 Remote L4-ID,Expires in,State
2 | TCP,2001:db8::2,58239,64:ff9b::5db8:d877,80,192.0.2.1,60477,93.184.216.119,80,00:02:57.44,V4_FIN_V6_FIN_RCV
3 | TCP,2001:db8::2,58237,64:ff9b::5db8:d877,80,192.0.2.1,6617,93.184.216.119,80,00:03:52.236,V4_FIN_V6_FIN_RCV
4 | ICMP,2001:db8::2,13371,64:ff9b::5db8:d877,13371,192.0.2.1,1402,93.184.216.119,1402,00:00:50.236,
5 |
--------------------------------------------------------------------------------
/docs/obj/tut2.1-wireshark.wsk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/docs/obj/tut2.1-wireshark.wsk
--------------------------------------------------------------------------------
/src/common/Makefile.am:
--------------------------------------------------------------------------------
1 | # This directory contains code that is shared between kernelspace and userspace.
2 |
3 | # Given that the shared libraries are presently private, we can skip the
4 | # installation of all of this. If you ever need to publish some libraries,
5 | # notice that a good chunk of this API does not need to be exported, as it's
6 | # only used internally by both the kernel modules and libjoolnl.
7 |
8 | # The .c files are header-source hybrids.
9 | # They are implementation code that needs to be identical in user and kernel.
10 | # Each one of them should be included no more than once in kernelspace, and no
11 | # more than once in userspace.
12 |
13 | noinst_HEADERS = \
14 | config.c config.h \
15 | constants.h \
16 | global.c global.h \
17 | iptables.h \
18 | session.h \
19 | stats.h \
20 | types.c types.h \
21 | xlat.h
22 |
--------------------------------------------------------------------------------
/src/common/iptables.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_COMMON_IPTABLES_H_
2 | #define SRC_COMMON_IPTABLES_H_
3 |
4 | #include "common/types.h"
5 |
6 | #define IPTABLES_SIIT_MODULE_NAME "JOOL_SIIT"
7 | #define IPTABLES_NAT64_MODULE_NAME "JOOL"
8 |
9 | /* Mind alignment on this structure. */
10 | struct target_info {
11 | char iname[INAME_MAX_SIZE];
12 | __u8 type; /* xlator_type */
13 | };
14 |
15 | #endif /* SRC_COMMON_IPTABLES_H_ */
16 |
--------------------------------------------------------------------------------
/src/mod/common/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 |
4 | all:
5 | make -C ${KERNEL_DIR} M=$$PWD
6 | modules:
7 | make -C ${KERNEL_DIR} M=$$PWD $@
8 | modules_install:
9 | make -C ${KERNEL_DIR} M=$$PWD $@
10 | install: modules_install
11 | depmod
12 | clean:
13 | make -C ${KERNEL_DIR} M=$$PWD $@
14 | debug:
15 | make CFLAGS_MODULE+=-DDEBUG all
16 |
--------------------------------------------------------------------------------
/src/mod/common/atomic_config.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_ATOMIC_CONFIG_H_
2 | #define SRC_MOD_COMMON_ATOMIC_CONFIG_H_
3 |
4 | #include
5 |
6 | void atomconfig_teardown(void);
7 | int atomconfig_add(struct sk_buff *skb, struct genl_info *info);
8 |
9 | #endif /* SRC_MOD_COMMON_ATOMIC_CONFIG_H_ */
10 |
--------------------------------------------------------------------------------
/src/mod/common/compat_32_64.h:
--------------------------------------------------------------------------------
1 | #if defined(CONFIG_64BIT)
2 | #define PTR_AS_UINT_TYPE __u64
3 | #else
4 | #define PTR_AS_UINT_TYPE __u32
5 | #endif
6 |
--------------------------------------------------------------------------------
/src/mod/common/core.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_CORE_H_
2 | #define SRC_MOD_COMMON_CORE_H_
3 |
4 | /**
5 | * @file
6 | * The core is the packet handling's entry point.
7 | */
8 |
9 | #include
10 | #include "mod/common/translation_state.h"
11 |
12 | /**
13 | * Assumes @skb is an IPv6 packet, and attempts to translate and send its IPv4
14 | * counterpart.
15 | */
16 | verdict core_6to4(struct sk_buff *skb, struct xlation *state);
17 | /**
18 | * Assumes @skb is an IPv4 packet, and attempts to translate and send its IPv4
19 | * counterpart.
20 | */
21 | verdict core_4to6(struct sk_buff *skb, struct xlation *state);
22 |
23 | #endif /* SRC_MOD_COMMON_CORE_H_ */
24 |
--------------------------------------------------------------------------------
/src/mod/common/db/bib/entry.c:
--------------------------------------------------------------------------------
1 | #include "entry.h"
2 | #include "mod/common/address.h"
3 |
4 | bool session_equals(const struct session_entry *s1,
5 | const struct session_entry *s2)
6 | {
7 | return taddr6_equals(&s1->src6, &s2->src6)
8 | && taddr6_equals(&s1->dst6, &s2->dst6)
9 | && taddr4_equals(&s1->src4, &s2->src4)
10 | && taddr4_equals(&s1->dst4, &s2->dst4)
11 | && (s1->proto == s2->proto);
12 | }
13 |
--------------------------------------------------------------------------------
/src/mod/common/db/global.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_CONFIG_H_
2 | #define SRC_MOD_COMMON_CONFIG_H_
3 |
4 | #include "common/config.h"
5 | #include "common/global.h"
6 |
7 | int globals_init(struct jool_globals *config, xlator_type type,
8 | struct ipv6_prefix *pool6);
9 |
10 | int globals_foreach(struct jool_globals *config,
11 | xlator_type xt,
12 | int (*cb)(struct joolnl_global_meta const *, void *, void *),
13 | void *arg,
14 | enum joolnl_attr_global offset);
15 |
16 | int pool6_validate(struct config_prefix6 *prefix, bool force);
17 |
18 | #endif /* SRC_MOD_COMMON_CONFIG_H_ */
19 |
--------------------------------------------------------------------------------
/src/mod/common/db/pool4/empty.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_NAT64_POOL4_EMPTY_H_
2 | #define SRC_MOD_NAT64_POOL4_EMPTY_H_
3 |
4 | #include "common/types.h"
5 | #include "mod/common/packet.h"
6 |
7 | bool pool4empty_contains(struct net *ns, const struct ipv4_transport_addr *addr);
8 | verdict pool4empty_find(struct xlation *state, struct ipv4_range *range);
9 |
10 | #endif /* SRC_MOD_NAT64_POOL4_EMPTY_H_ */
11 |
--------------------------------------------------------------------------------
/src/mod/common/db/pool4/rfc6056.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_NAT64_POOL4_RFC6056_H_
2 | #define SRC_MOD_NAT64_POOL4_RFC6056_H_
3 |
4 | #include "common/types.h"
5 | #include "mod/common/translation_state.h"
6 |
7 | int rfc6056_setup(void);
8 | void rfc6056_teardown(void);
9 |
10 | int rfc6056_f(struct xlation *state, unsigned int *result);
11 |
12 | #endif /* SRC_MOD_NAT64_POOL4_RFC6056_H_ */
13 |
--------------------------------------------------------------------------------
/src/mod/common/db/rbtree.c:
--------------------------------------------------------------------------------
1 | #include "rbtree.h"
2 | #include
3 | #include "mod/common/log.h"
4 |
5 | void treeslot_init(struct tree_slot *slot,
6 | struct rb_root *root,
7 | struct rb_node *entry)
8 | {
9 | slot->tree = root;
10 | slot->entry = entry;
11 | slot->parent = NULL;
12 | slot->rb_link = &root->rb_node;
13 | }
14 |
15 | void treeslot_commit(struct tree_slot *slot)
16 | {
17 | rb_link_node(slot->entry, slot->parent, slot->rb_link);
18 | rb_insert_color(slot->entry, slot->tree);
19 | }
20 |
--------------------------------------------------------------------------------
/src/mod/common/db/rfc6791v4.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_SIIT_RFC6791V4_H_
2 | #define SRC_MOD_SIIT_RFC6791V4_H_
3 |
4 | /**
5 | * @file
6 | * This is RFC 6791's pool of addresses.
7 | *
8 | * "The recommended approach to source selection is to use a single (or
9 | * small pool of) public IPv4 address as the source address of the
10 | * translated ICMP message and leverage the ICMP extension [RFC5837] to
11 | * include the IPv6 address as an Interface IP Address Sub-Object."
12 | *
13 | * The ICMP extension thing has not been implemented yet.
14 | */
15 |
16 | #include "mod/common/translation_state.h"
17 |
18 | int rfc6791v4_find(struct xlation *state, struct in_addr *result);
19 |
20 | #endif /* SRC_MOD_SIIT_RFC6791V4_H_ */
21 |
--------------------------------------------------------------------------------
/src/mod/common/db/rfc6791v6.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_SIIT_RFC6791V6_H_
2 | #define SRC_MOD_SIIT_RFC6791V6_H_
3 |
4 | /**
5 | * @file
6 | * This is RFC 6791's pool of addresses.
7 | *
8 | * "The recommended approach to source selection is to use a single (or
9 | * small pool of) public IPv4 address as the source address of the
10 | * translated ICMP message and leverage the ICMP extension [RFC5837] to
11 | * include the IPv6 address as an Interface IP Address Sub-Object."
12 | *
13 | * The ICMP extension thing has not been implemented yet.
14 | */
15 |
16 | #include "mod/common/translation_state.h"
17 |
18 | int rfc6791v6_find(struct xlation *state, struct in6_addr *result);
19 |
20 | #endif /* SRC_MOD_SIIT_RFC6791V6_H_ */
21 |
--------------------------------------------------------------------------------
/src/mod/common/dev.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_DEV_H_
2 | #define SRC_MOD_COMMON_DEV_H_
3 |
4 | #include
5 |
6 | int foreach_ifa(struct net *ns, int (*cb)(struct in_ifaddr *, void const *),
7 | void const *args);
8 |
9 | #endif /* SRC_MOD_COMMON_DEV_H_ */
10 |
--------------------------------------------------------------------------------
/src/mod/common/error_pool.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_ERROR_POOL_H_
2 | #define SRC_MOD_COMMON_ERROR_POOL_H_
3 |
4 | #include
5 |
6 | /* TODO (fine) This is nonsense; find a better way to send messages to userspace. */
7 |
8 | void error_pool_setup(void);
9 | void error_pool_teardown(void);
10 |
11 | void error_pool_activate(void);
12 | void error_pool_add_message(char *msg);
13 | int error_pool_has_errors(void);
14 | int error_pool_get_message(char **out_message, size_t *msg_len);
15 | void error_pool_deactivate(void);
16 |
17 | #endif /* SRC_MOD_COMMON_ERROR_POOL_H_ */
18 |
--------------------------------------------------------------------------------
/src/mod/common/init.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_INIT_H_
2 | #define SRC_MOD_COMMON_INIT_H_
3 |
4 | #include
5 |
6 | int jool_siit_get(void);
7 | void jool_siit_put(void);
8 | int jool_nat64_get(void (*defrag_enable)(struct net *ns));
9 | void jool_nat64_put(void);
10 |
11 | bool is_siit_enabled(void);
12 | bool is_nat64_enabled(void);
13 |
14 | #endif /* SRC_MOD_COMMON_INIT_H_ */
15 |
--------------------------------------------------------------------------------
/src/mod/common/nl/address.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_ADDRESS_H_
2 | #define SRC_MOD_COMMON_NL_ADDRESS_H_
3 |
4 | #include
5 | #include "common/config.h"
6 |
7 | int handle_address_query64(struct sk_buff *skb, struct genl_info *info);
8 | int handle_address_query46(struct sk_buff *skb, struct genl_info *info);
9 |
10 | #endif /* SRC_MOD_COMMON_NL_ADDRESS_H_ */
11 |
--------------------------------------------------------------------------------
/src/mod/common/nl/atomic_config.c:
--------------------------------------------------------------------------------
1 | #include "mod/common/nl/atomic_config.h"
2 |
3 | #include "mod/common/log.h"
4 | #include "mod/common/atomic_config.h"
5 | #include "mod/common/nl/nl_common.h"
6 | #include "mod/common/nl/nl_core.h"
7 |
8 | int handle_atomconfig_request(struct sk_buff *skb, struct genl_info *info)
9 | {
10 | int error;
11 |
12 | LOG_DEBUG("Handling atomic configuration request.");
13 |
14 | error = request_handle_start(info, XT_ANY, NULL, true);
15 | if (!error)
16 | error = atomconfig_add(skb, info);
17 | request_handle_end(NULL);
18 |
19 | return jresponse_send_simple(NULL, info, error);
20 | }
21 |
--------------------------------------------------------------------------------
/src/mod/common/nl/atomic_config.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_ATOMIC_CONFIG_H_
2 | #define SRC_MOD_COMMON_NL_ATOMIC_CONFIG_H_
3 |
4 | #include
5 |
6 | int handle_atomconfig_request(struct sk_buff *skb, struct genl_info *info);
7 |
8 | #endif /* SRC_MOD_COMMON_NL_ATOMIC_CONFIG_H_ */
9 |
--------------------------------------------------------------------------------
/src/mod/common/nl/bib.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_BIB_H_
2 | #define SRC_MOD_COMMON_NL_BIB_H_
3 |
4 | #include
5 |
6 | int handle_bib_foreach(struct sk_buff *skb, struct genl_info *info);
7 | int handle_bib_add(struct sk_buff *skb, struct genl_info *info);
8 | int handle_bib_rm(struct sk_buff *skb, struct genl_info *info);
9 |
10 | #endif /* SRC_MOD_COMMON_NL */
11 |
--------------------------------------------------------------------------------
/src/mod/common/nl/denylist4.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_DENYLIST4_H_
2 | #define SRC_MOD_COMMON_NL_DENYLIST4_H_
3 |
4 | #include
5 |
6 | int handle_denylist4_foreach(struct sk_buff *skb, struct genl_info *info);
7 | int handle_denylist4_add(struct sk_buff *skb, struct genl_info *info);
8 | int handle_denylist4_rm(struct sk_buff *skb, struct genl_info *info);
9 | int handle_denylist4_flush(struct sk_buff *skb, struct genl_info *info);
10 |
11 | #endif /* SRC_MOD_COMMON_NL_DENYLIST4_H_ */
12 |
--------------------------------------------------------------------------------
/src/mod/common/nl/eam.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_EAM_H_
2 | #define SRC_MOD_COMMON_NL_EAM_H_
3 |
4 | #include
5 |
6 | int handle_eamt_foreach(struct sk_buff *skb, struct genl_info *info);
7 | int handle_eamt_add(struct sk_buff *skb, struct genl_info *info);
8 | int handle_eamt_rm(struct sk_buff *skb, struct genl_info *info);
9 | int handle_eamt_flush(struct sk_buff *skb, struct genl_info *info);
10 |
11 | #endif /* SRC_MOD_COMMON_NL_EAM_H_ */
12 |
--------------------------------------------------------------------------------
/src/mod/common/nl/global.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_GLOBAL_H_
2 | #define SRC_MOD_COMMON_NL_GLOBAL_H_
3 |
4 | #include
5 | #include "common/config.h"
6 |
7 | int handle_global_foreach(struct sk_buff *skb, struct genl_info *info);
8 | int handle_global_update(struct sk_buff *skb, struct genl_info *info);
9 |
10 | int global_update(struct jool_globals *cfg, xlator_type xt, bool force,
11 | struct nlattr *root);
12 |
13 | #endif /* SRC_MOD_COMMON_NL_GLOBAL_H_ */
14 |
--------------------------------------------------------------------------------
/src/mod/common/nl/instance.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_INSTANCE_H_
2 | #define SRC_MOD_COMMON_NL_INSTANCE_H_
3 |
4 | #include
5 | #include "common/config.h"
6 |
7 | int handle_instance_foreach(struct sk_buff *skb, struct genl_info *info);
8 | int handle_instance_add(struct sk_buff *skb, struct genl_info *info);
9 | int handle_instance_hello(struct sk_buff *skb, struct genl_info *info);
10 | int handle_instance_rm(struct sk_buff *skb, struct genl_info *info);
11 | int handle_instance_flush(struct sk_buff *skb, struct genl_info *info);
12 |
13 | #endif /* SRC_MOD_COMMON_NL_INSTANCE_H_ */
14 |
--------------------------------------------------------------------------------
/src/mod/common/nl/joold.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_JOOLD_H_
2 | #define SRC_MOD_COMMON_NL_JOOLD_H_
3 |
4 | #include
5 | #include "mod/common/xlator.h"
6 |
7 | int handle_joold_add(struct sk_buff *skb, struct genl_info *info);
8 | int handle_joold_advertise(struct sk_buff *skb, struct genl_info *info);
9 | int handle_joold_ack(struct sk_buff *skb, struct genl_info *info);
10 |
11 | #endif /* SRC_MOD_COMMON_NL_JOOLD_H_ */
12 |
--------------------------------------------------------------------------------
/src/mod/common/nl/nl_common.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_COMMON_H_
2 | #define SRC_MOD_COMMON_NL_COMMON_H_
3 |
4 | #include
5 | #include "common/config.h"
6 | #include "mod/common/xlator.h"
7 |
8 | char *get_iname(struct genl_info *info);
9 | struct joolnlhdr *get_jool_hdr(struct genl_info *info);
10 |
11 | int request_handle_start(struct genl_info *info, xlator_type xt,
12 | struct xlator *jool, bool require_net_admin);
13 | void request_handle_end(struct xlator *jool);
14 |
15 | #endif /* SRC_MOD_COMMON_NL_COMMON_H_ */
16 |
--------------------------------------------------------------------------------
/src/mod/common/nl/nl_handler.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_HANDLER_H_
2 | #define SRC_MOD_COMMON_NL_HANDLER_H_
3 |
4 | /**
5 | * @file
6 | * The NAT64's layer/bridge towards the user. S/he can control its behavior
7 | * using this.
8 | */
9 |
10 | #include
11 | #include
12 |
13 | int nlhandler_setup(void);
14 | void nlhandler_teardown(void);
15 |
16 | int handle_jool_message(struct sk_buff *skb, struct genl_info *info);
17 |
18 | u32 jnl_gid(void);
19 | struct genl_family *jnl_family(void);
20 |
21 | #endif /* SRC_MOD_COMMON_NL_HANDLER_H_ */
22 |
--------------------------------------------------------------------------------
/src/mod/common/nl/pool4.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_POOL4_H_
2 | #define SRC_MOD_COMMON_NL_POOL4_H_
3 |
4 | #include
5 |
6 | int handle_pool4_foreach(struct sk_buff *skb, struct genl_info *info);
7 | int handle_pool4_add(struct sk_buff *skb, struct genl_info *info);
8 | int handle_pool4_rm(struct sk_buff *skb, struct genl_info *info);
9 | int handle_pool4_flush(struct sk_buff *skb, struct genl_info *info);
10 |
11 | #endif /* SRC_MOD_COMMON_NL_POOL4_H_ */
12 |
--------------------------------------------------------------------------------
/src/mod/common/nl/session.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_SESSION_H_
2 | #define SRC_MOD_COMMON_NL_SESSION_H_
3 |
4 | #include
5 |
6 | int handle_session_foreach(struct sk_buff *skb, struct genl_info *info);
7 |
8 | #endif /* SRC_MOD_COMMON_NL_SESSION_H_ */
9 |
--------------------------------------------------------------------------------
/src/mod/common/nl/stats.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_NL_STATS_H_
2 | #define SRC_MOD_COMMON_NL_STATS_H_
3 |
4 | #include
5 |
6 | int handle_stats_foreach(struct sk_buff *jool, struct genl_info *info);
7 |
8 | #endif /* SRC_MOD_COMMON_NL_STATS_H_ */
9 |
--------------------------------------------------------------------------------
/src/mod/common/rfc7915/4to6.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_RFC7915_4TO6_H_
2 | #define SRC_MOD_COMMON_RFC7915_4TO6_H_
3 |
4 | /**
5 | * @file
6 | * Actual translation of packet contents from from IPv4 to IPv6.
7 | *
8 | * This is RFC 7915 sections 4.1, 4.2 and 4.3.
9 | */
10 |
11 | #include "mod/common/rfc7915/common.h"
12 |
13 | extern const struct translation_steps ttp46_steps;
14 |
15 | #endif /* SRC_MOD_COMMON_RFC7915_4TO6_H_ */
16 |
--------------------------------------------------------------------------------
/src/mod/common/rfc7915/6to4.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_RFC7915_6TO4_H_
2 | #define SRC_MOD_COMMON_RFC7915_6TO4_H_
3 |
4 | /**
5 | * @file
6 | * Actual translation of packet contents from from IPv6 to IPv4.
7 | *
8 | * This is RFC 7915 sections 5.1, 5.1.1, 5.2 and 5.3. Not to be confused with
9 | * the technology called "6to4", which is RFC 3056.
10 | */
11 |
12 | #include "mod/common/rfc7915/common.h"
13 |
14 | extern const struct translation_steps ttp64_steps;
15 |
16 | verdict predict_route64(struct xlation *state);
17 |
18 | #endif /* SRC_MOD_COMMON_RFC7915_6TO4_H_ */
19 |
--------------------------------------------------------------------------------
/src/mod/common/rfc7915/core.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_RFC7915_CORE_H_
2 | #define SRC_MOD_COMMON_RFC7915_CORE_H_
3 |
4 | /**
5 | * @file
6 | * This is the face of the "Translating the Packet" code. Files outside of this
7 | * folder should only see the API exposed by this file.
8 | *
9 | * "Translating the Packet" is the core translation of SIIT and the fourth step
10 | * of NAT64 (RFC6146 section 3.7).
11 | */
12 |
13 | #include
14 | #include
15 | #include "mod/common/translation_state.h"
16 |
17 | verdict translating_the_packet(struct xlation *state);
18 |
19 | #endif /* SRC_MOD_COMMON_RFC7915_CORE_H_ */
20 |
--------------------------------------------------------------------------------
/src/mod/common/route.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_ROUTE_H_
2 | #define SRC_MOD_COMMON_ROUTE_H_
3 |
4 | #include /* Needed by flow.h in some old kernels (~4.9) */
5 | #include
6 | #include "mod/common/xlator.h"
7 |
8 | /* Wrappers for the kernel's routing functions. */
9 | struct dst_entry *route4(struct xlator *jool, struct flowi4 *flow);
10 | struct dst_entry *route6(struct xlator *jool, struct flowi6 *flow);
11 |
12 | #endif /* SRC_MOD_COMMON_ROUTE_H_ */
13 |
--------------------------------------------------------------------------------
/src/mod/common/skbuff.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_SKBUFF_H_
2 | #define SRC_MOD_COMMON_SKBUFF_H_
3 |
4 | #include
5 |
6 | void skb_log(struct sk_buff *skb, char *label);
7 |
8 | #endif /* SRC_MOD_COMMON_SKBUFF_H_ */
9 |
--------------------------------------------------------------------------------
/src/mod/common/stats.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_STATS_H_
2 | #define SRC_MOD_COMMON_STATS_H_
3 |
4 | #include "common/stats.h"
5 | #include "mod/common/packet.h"
6 |
7 | struct jool_stats;
8 |
9 | struct jool_stats *jstat_alloc(void);
10 | void jstat_get(struct jool_stats *stats);
11 | void jstat_put(struct jool_stats *stats);
12 |
13 | void jstat_inc(struct jool_stats *stats, enum jool_stat_id stat);
14 | void jstat_dec(struct jool_stats *stats, enum jool_stat_id stat);
15 | void jstat_add(struct jool_stats *stats, enum jool_stat_id stat, int addend);
16 |
17 | __u64 *jstat_query(struct jool_stats *stats);
18 |
19 | #ifdef UNIT_TESTING
20 | int jstat_refcount(struct jool_stats *stats);
21 | #endif
22 |
23 | #endif /* SRC_MOD_COMMON_STATS_H_ */
24 |
--------------------------------------------------------------------------------
/src/mod/common/steps/compute_outgoing_tuple.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_NAT64_COMPUTE_OUTGOING_TUPLE_H_
2 | #define SRC_MOD_NAT64_COMPUTE_OUTGOING_TUPLE_H_
3 |
4 | /**
5 | * @file
6 | * Third step in the packet processing algorithm defined in the RFC.
7 | * The 3.6 section of RFC 6146 is encapsulated in this module.
8 | * Infers a tuple (summary) of the outgoing packet, yet to be created.
9 | */
10 |
11 | #include "mod/common/translation_state.h"
12 |
13 | verdict translate_addrs64_siit(struct xlation *state, __be32 *src_out,
14 | __be32 *dst_out);
15 | verdict translate_addrs46_siit(struct xlation *state, struct in6_addr *src_out,
16 | struct in6_addr *dst_out);
17 |
18 | verdict compute_out_tuple(struct xlation *state);
19 |
20 | #endif /* SRC_MOD_NAT64_COMPUTE_OUTGOING_TUPLE_H_ */
21 |
--------------------------------------------------------------------------------
/src/mod/common/steps/determine_incoming_tuple.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_NAT64_DETERMINE_INCOMING_TUPLE_H_
2 | #define SRC_MOD_NAT64_DETERMINE_INCOMING_TUPLE_H_
3 |
4 | /**
5 | * @file
6 | * The first step in the packet processing algorithm defined in the RFC.
7 | * The 3.4 section of RFC 6146 is encapsulated in this module.
8 | * Creates a tuple (summary) of the incoming packet.
9 | */
10 |
11 | #include "mod/common/translation_state.h"
12 |
13 | verdict determine_in_tuple(struct xlation *state);
14 |
15 |
16 | #endif /* SRC_MOD_NAT64_DETERMINE_INCOMING_TUPLE_H_ */
17 |
--------------------------------------------------------------------------------
/src/mod/common/steps/filtering_and_updating.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_NAT64_FILTERING_AND_UPDATING_H_
2 | #define SRC_MOD_NAT64_FILTERING_AND_UPDATING_H_
3 |
4 | /**
5 | * @file
6 | * Second step of the stateful NAT64 translation algorithm: "Filtering and Updating Binding and
7 | * Session Information", as defined in RFC6146 section 3.5.
8 | */
9 |
10 | #include "mod/common/translation_state.h"
11 | #include "mod/common/db/bib/entry.h"
12 |
13 | verdict filtering_and_updating(struct xlation *state);
14 | enum session_fate tcp_est_expire_cb(struct session_entry *session, void *arg);
15 |
16 | #endif /* SRC_MOD_NAT64_FILTERING_AND_UPDATING_H_ */
17 |
--------------------------------------------------------------------------------
/src/mod/common/steps/handling_hairpinning_nat64.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_HANDLING_HARPINNING_H_
2 | #define SRC_MOD_COMMON_HANDLING_HARPINNING_H_
3 |
4 | /**
5 | * @file
6 | * Fifth and (officially) last step of the Nat64 translation algorithm: "Handling Hairpinning", as
7 | * defined in RFC6146 section 3.8.
8 | * Recognizes a packet that should return from the same interface and handles it accordingly.
9 | */
10 |
11 | #include "mod/common/translation_state.h"
12 |
13 | bool is_hairpin_nat64(struct xlation *state);
14 | verdict handling_hairpinning_nat64(struct xlation *state);
15 |
16 | #endif /* SRC_MOD_COMMON_HANDLING_HARPINNING_H_ */
17 |
--------------------------------------------------------------------------------
/src/mod/common/steps/handling_hairpinning_siit.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_STEPS_HANDLING_HAIRPINNING_H_
2 | #define SRC_MOD_COMMON_STEPS_HANDLING_HAIRPINNING_H_
3 |
4 | #include "mod/common/translation_state.h"
5 |
6 | bool is_hairpin_siit(struct xlation *state);
7 | verdict handling_hairpinning_siit(struct xlation *old);
8 |
9 | #endif /* SRC_MOD_COMMON_STEPS_HANDLING_HAIRPINNING_H_ */
10 |
--------------------------------------------------------------------------------
/src/mod/common/timer.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_NAT64_TIMER_H_
2 | #define SRC_MOD_NAT64_TIMER_H_
3 |
4 | /**
5 | * @file
6 | * An all-purpose timer used to trigger some of Jool's events. Always runs, as
7 | * long as Jool is modprobed. At time of writing, this induces session and
8 | * fragment expiration.
9 | *
10 | * Why don't the session and fragment code manage their own timers?
11 | * Because that's more code and I don't see how it would improve anything.
12 | */
13 |
14 | int jtimer_setup(void);
15 | void jtimer_teardown(void);
16 |
17 | #endif /* SRC_MOD_NAT64_TIMER_H_ */
18 |
--------------------------------------------------------------------------------
/src/mod/common/trace.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_MOD_COMMON_TRACE_H_
2 | #define SRC_MOD_COMMON_TRACE_H_
3 |
4 | #include "mod/common/translation_state.h"
5 |
6 | void pkt_trace6(struct xlation *state);
7 | void pkt_trace4(struct xlation *state);
8 |
9 | #endif /* SRC_MOD_COMMON_TRACE_H_ */
10 |
--------------------------------------------------------------------------------
/src/mod/common/wrapper-config.c:
--------------------------------------------------------------------------------
1 | #include "common/config.c"
2 |
--------------------------------------------------------------------------------
/src/mod/common/wrapper-global.c:
--------------------------------------------------------------------------------
1 | #include "common/global.c"
2 |
--------------------------------------------------------------------------------
/src/mod/common/wrapper-types.c:
--------------------------------------------------------------------------------
1 | #include "common/types.c"
2 |
--------------------------------------------------------------------------------
/src/mod/nat64/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 | KBUILD_EXTRA_SYMBOLS = $(src)/../common/Module.symvers
4 |
5 | #CC=cgcc # More healthy warnings.
6 | ccflags-y := -I$(src)/../..
7 |
8 | obj-m += jool.o
9 |
10 | all:
11 | make -C ${KERNEL_DIR} M=$$PWD
12 | modules:
13 | make -C ${KERNEL_DIR} M=$$PWD $@
14 | modules_install:
15 | make -C ${KERNEL_DIR} M=$$PWD $@
16 | install: modules_install
17 | depmod
18 | clean:
19 | make -C ${KERNEL_DIR} M=$$PWD $@
20 | debug:
21 | make CFLAGS_MODULE+=-DDEBUG all
22 |
--------------------------------------------------------------------------------
/src/mod/siit/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 | KBUILD_EXTRA_SYMBOLS = $(src)/../common/Module.symvers
4 |
5 | #CC=cgcc # More healthy warnings.
6 | ccflags-y := -I$(src)/../..
7 |
8 | obj-m += jool_siit.o
9 |
10 | all:
11 | make -C ${KERNEL_DIR} M=$$PWD
12 | modules:
13 | make -C ${KERNEL_DIR} M=$$PWD $@
14 | modules_install:
15 | make -C ${KERNEL_DIR} M=$$PWD $@
16 | install: modules_install
17 | depmod
18 | clean:
19 | make -C ${KERNEL_DIR} M=$$PWD $@
20 | debug:
21 | make CFLAGS_MODULE+=-DDEBUG all
22 |
--------------------------------------------------------------------------------
/src/usr/Makefile.am:
--------------------------------------------------------------------------------
1 | if XTABLES_ENABLED
2 | MAYBE_XTABLES = iptables
3 | endif
4 |
5 | SUBDIRS = util nl argp siit nat64 $(MAYBE_XTABLES) joold
6 |
--------------------------------------------------------------------------------
/src/usr/argp/command.c:
--------------------------------------------------------------------------------
1 | #include "usr/argp/command.h"
2 |
3 | #include "common/xlat.h"
4 | #include "usr/argp/xlator_type.h"
5 |
6 | bool cmdopt_is_hidden(struct cmd_option *option)
7 | {
8 | return option->hidden || !(xt_get() & option->xt);
9 | }
10 |
--------------------------------------------------------------------------------
/src/usr/argp/dns.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_DNS_H_
2 | #define SRC_USR_ARGP_DNS_H_
3 |
4 | #include "common/types.h"
5 |
6 | void print_addr6(struct ipv6_transport_addr const *addr, bool numeric,
7 | char const *separator, __u8 l4_proto);
8 | void print_addr4(struct ipv4_transport_addr const *addr, bool numeric,
9 | char const *separator, __u8 l4_proto);
10 |
11 | #endif /* SRC_USR_ARGP_DNS_H_ */
12 |
--------------------------------------------------------------------------------
/src/usr/argp/joold/modsocket.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_JOOLD_MODSOCKET_H_
2 | #define SRC_USR_ARGP_JOOLD_MODSOCKET_H_
3 |
4 | /* This is the socket we use to talk to the kernel module. */
5 |
6 | #include
7 |
8 | int modsocket_setup(char const *iname);
9 |
10 | void *modsocket_listen(void *arg);
11 | void modsocket_send(void *buffer, size_t size);
12 |
13 | #endif /* SRC_USR_ARGP_JOOLD_MODSOCKET_H_ */
14 |
--------------------------------------------------------------------------------
/src/usr/argp/joold/statsocket.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_JOOLD_STATSOCKET_H_
2 | #define SRC_USR_ARGP_JOOLD_STATSOCKET_H_
3 |
4 | #include
5 |
6 | struct statsocket_cfg {
7 | bool enabled;
8 | char *address;
9 | char *port;
10 | };
11 |
12 | int statsocket_start(struct statsocket_cfg *);
13 |
14 | #endif /* SRC_USR_ARGP_JOOLD_STATSOCKET_H_ */
15 |
--------------------------------------------------------------------------------
/src/usr/argp/log.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_LOG_H_
2 | #define SRC_USR_ARGP_LOG_H_
3 |
4 | #include "usr/util/result.h"
5 |
6 | #if __GNUC__
7 | #define CHECK_FORMAT(str, args) __attribute__((format(printf, str, args)))
8 | #else
9 | #define CHECK_FORMAT(str, args) /* Nothing */
10 | #endif
11 |
12 | void pr_warn(const char *fmt, ...) CHECK_FORMAT(1, 2);
13 | void pr_err(const char *fmt, ...) CHECK_FORMAT(1, 2);
14 | int pr_result(struct jool_result *result);
15 | int pr_result_syslog(struct jool_result *result);
16 | void pr_perror(char *prefix, int error);
17 |
18 | #endif /* SRC_USR_ARGP_LOG_H_ */
19 |
--------------------------------------------------------------------------------
/src/usr/argp/main.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_MAIN_H_
2 | #define SRC_USR_ARGP_MAIN_H_
3 |
4 | int jool_main(int argc, char **argv);
5 |
6 | #endif /* SRC_USR_ARGP_MAIN_H_ */
7 |
--------------------------------------------------------------------------------
/src/usr/argp/requirements.c:
--------------------------------------------------------------------------------
1 | #include "usr/argp/requirements.h"
2 |
3 | #include
4 | #include
5 |
6 | static struct requirement *get_next(struct requirement *current)
7 | {
8 | for (current++; current->what; current++)
9 | if (!current->set)
10 | return current;
11 | return NULL;
12 | }
13 |
14 | int requirement_print(struct requirement *reqs)
15 | {
16 | struct requirement *current;
17 | struct requirement *next;
18 |
19 | fprintf(stderr, "The command is missing ");
20 | for (current = reqs; current->what; current++) {
21 | if (current->set)
22 | continue;
23 |
24 | fprintf(stderr, "%s", current->what);
25 |
26 | next = get_next(current);
27 | if (next) {
28 | if (get_next(next))
29 | fprintf(stderr, ", ");
30 | else
31 | fprintf(stderr, " and ");
32 | }
33 | }
34 | fprintf(stderr, ".\n");
35 |
36 | return -EINVAL;
37 | }
38 |
--------------------------------------------------------------------------------
/src/usr/argp/requirements.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_REQUIREMENTS_H_
2 | #define SRC_USR_ARGP_REQUIREMENTS_H_
3 |
4 | #include
5 |
6 | struct requirement {
7 | bool set;
8 | char *what;
9 | };
10 |
11 | int requirement_print(struct requirement *reqs);
12 |
13 | #endif /* SRC_USR_ARGP_REQUIREMENTS_H_ */
14 |
--------------------------------------------------------------------------------
/src/usr/argp/userspace-types.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_USERSPACE_TYPES_H_
2 | #define SRC_USR_ARGP_USERSPACE_TYPES_H_
3 |
4 | #include
5 |
6 | bool show_csv_header(bool no_headers, bool csv);
7 | bool show_footer(bool no_headers, bool csv);
8 | void print_table_separator(int junk, ...);
9 |
10 | #endif /* SRC_USR_ARGP_USERSPACE_TYPES_H_ */
11 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/address.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_ADDRESS_H_
2 | #define SRC_USR_ARGP_WARGP_ADDRESS_H_
3 |
4 | int handle_address_query(char *iname, int argc, char **argv, void const *arg);
5 | void autocomplete_address_query(void const *args);
6 |
7 | #endif /* SRC_USR_ARGP_WARGP_ADDRESS_H_ */
8 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/bib.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_BIB_H_
2 | #define SRC_USR_ARGP_WARGP_BIB_H_
3 |
4 | int handle_bib_display(char *iname, int argc, char **argv, void const *arg);
5 | int handle_bib_add(char *iname, int argc, char **argv, void const *arg);
6 | int handle_bib_remove(char *iname, int argc, char **argv, void const *arg);
7 |
8 | void autocomplete_bib_display(void const *args);
9 | void autocomplete_bib_add(void const *args);
10 | void autocomplete_bib_remove(void const *args);
11 |
12 | #endif /* SRC_USR_ARGP_WARGP_BIB_H_ */
13 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/eamt.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_EAMT_H_
2 | #define SRC_USR_ARGP_WARGP_EAMT_H_
3 |
4 | int handle_eamt_display(char *iname, int argc, char **argv, void const *arg);
5 | int handle_eamt_add(char *iname, int argc, char **argv, void const *arg);
6 | int handle_eamt_remove(char *iname, int argc, char **argv, void const *arg);
7 | int handle_eamt_flush(char *iname, int argc, char **argv, void const *arg);
8 | int handle_eamt_query(char *iname, int argc, char **argv, void const *arg);
9 |
10 | void autocomplete_eamt_display(void const *args);
11 | void autocomplete_eamt_add(void const *args);
12 | void autocomplete_eamt_remove(void const *args);
13 | void autocomplete_eamt_flush(void const *args);
14 | void autocomplete_eamt_query(void const *args);
15 |
16 | #endif /* SRC_USR_ARGP_WARGP_EAMT_H_ */
17 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/file.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_FILE_H_
2 | #define SRC_USR_ARGP_WARGP_FILE_H_
3 |
4 | int handle_file_update(char *iname, int argc, char **argv, void const *arg);
5 | void autocomplete_file_update(void const *args);
6 |
7 | #endif /* SRC_USR_ARGP_WARGP_FILE_H_ */
8 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/global.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_GLOBAL_H_
2 | #define SRC_USR_ARGP_WARGP_GLOBAL_H_
3 |
4 | int handle_global_display(char *iname, int argc, char **argv, void const *arg);
5 | void autocomplete_global_display(void const *args);
6 |
7 | struct cmd_option *build_global_update_children(void);
8 |
9 | #endif /* SRC_USR_ARGP_WARGP_GLOBAL_H_ */
10 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/instance.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_INSTANCE_H_
2 | #define SRC_USR_ARGP_WARGP_INSTANCE_H_
3 |
4 | int handle_instance_display(char *iname, int argc, char **argv, void const *arg);
5 | int handle_instance_add(char *iname, int argc, char **argv, void const *arg);
6 | int handle_instance_remove(char *iname, int argc, char **argv, void const *arg);
7 | int handle_instance_flush(char *iname, int argc, char **argv, void const *arg);
8 | int handle_instance_status(char *iname, int argc, char **argv, void const *arg);
9 |
10 | void autocomplete_instance_display(void const *args);
11 | void autocomplete_instance_add(void const *args);
12 | void autocomplete_instance_remove(void const *args);
13 | void autocomplete_instance_flush(void const *args);
14 | void autocomplete_instance_status(void const *args);
15 |
16 | #endif /* SRC_USR_ARGP_WARGP_INSTANCE_H_ */
17 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/pool4.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_POOL4_H_
2 | #define SRC_USR_ARGP_WARGP_POOL4_H_
3 |
4 | int handle_pool4_display(char *iname, int argc, char **argv, void const *arg);
5 | int handle_pool4_add(char *iname, int argc, char **argv, void const *arg);
6 | int handle_pool4_remove(char *iname, int argc, char **argv, void const *arg);
7 | int handle_pool4_flush(char *iname, int argc, char **argv, void const *arg);
8 |
9 | void autocomplete_pool4_display(void const *args);
10 | void autocomplete_pool4_add(void const *args);
11 | void autocomplete_pool4_remove(void const *args);
12 | void autocomplete_pool4_flush(void const *args);
13 |
14 | #endif /* SRC_USR_ARGP_WARGP_POOL4_H_ */
15 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/session.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_SESSION_H_
2 | #define SRC_USR_ARGP_WARGP_SESSION_H_
3 |
4 | #include "usr/argp/joold/netsocket.h"
5 | #include "usr/argp/joold/statsocket.h"
6 |
7 | int handle_session_display(char *, int, char **, void const *);
8 | int handle_session_follow(char *, int, char **, void const *);
9 | int handle_session_proxy(char *, int, char **, void const *);
10 | int handle_session_advertise(char *, int, char **, void const *);
11 |
12 | void autocomplete_session_display(void const *);
13 | void autocomplete_session_follow(void const *);
14 | void autocomplete_session_proxy(void const *);
15 | void autocomplete_session_advertise(void const *);
16 |
17 | int joold_start(char const *iname, struct netsocket_cfg *netcfg,
18 | struct statsocket_cfg *statcfg);
19 |
20 | #endif /* SRC_USR_ARGP_WARGP_SESSION_H_ */
21 |
--------------------------------------------------------------------------------
/src/usr/argp/wargp/stats.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_WARGP_STATS_H_
2 | #define SRC_USR_ARGP_WARGP_STATS_H_
3 |
4 | int handle_stats_display(char *iname, int argc, char **argv, void const *arg);
5 | void autocomplete_stats_display(void const *args);
6 |
7 | #endif /* SRC_USR_ARGP_WARGP_STATS_H_ */
8 |
--------------------------------------------------------------------------------
/src/usr/argp/xlator_type.c:
--------------------------------------------------------------------------------
1 | #include "usr/argp/xlator_type.h"
2 |
3 | static xlator_type xtype = -1;
4 |
5 | void xt_set(xlator_type xt)
6 | {
7 | xtype = xt;
8 | }
9 |
10 | xlator_type xt_get(void)
11 | {
12 | return xtype;
13 | }
14 |
--------------------------------------------------------------------------------
/src/usr/argp/xlator_type.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_ARGP_XLATOR_TYPE_H_
2 | #define SRC_USR_ARGP_XLATOR_TYPE_H_
3 |
4 | #include "common/types.h"
5 |
6 | void xt_set(xlator_type xt);
7 | xlator_type xt_get(void);
8 |
9 | #endif /* SRC_USR_ARGP_XLATOR_TYPE_H_ */
10 |
--------------------------------------------------------------------------------
/src/usr/iptables/libxt_JOOL.c:
--------------------------------------------------------------------------------
1 | #include "common/iptables.h"
2 |
3 | #define IPTABLES_MODULE_NAME IPTABLES_NAT64_MODULE_NAME
4 | #define IPTABLES_MODULE_TYPE XT_NAT64
5 | #define IPTABLES_MODULE_MAIN jool_nat64_xtables_init
6 | #include "common.c"
7 |
--------------------------------------------------------------------------------
/src/usr/iptables/libxt_JOOL.man:
--------------------------------------------------------------------------------
1 | .TP
2 | [\fB!\fP] \fB--instance-name\fP \fIstring\fP
3 | Name of the *iptables* NAT64 Jool instance to send the packets to.
4 | Defaults to "default".
5 | .PP
6 | Sends packets to some NAT64 Jool instance in the current namespace.
7 | The instance needs to be configured separately.
8 |
--------------------------------------------------------------------------------
/src/usr/iptables/libxt_JOOL_SIIT.c:
--------------------------------------------------------------------------------
1 | #include "common/iptables.h"
2 |
3 | #define IPTABLES_MODULE_NAME IPTABLES_SIIT_MODULE_NAME
4 | #define IPTABLES_MODULE_TYPE XT_SIIT
5 | #define IPTABLES_MODULE_MAIN jool_siit_xtables_init
6 | #include "common.c"
7 |
--------------------------------------------------------------------------------
/src/usr/iptables/libxt_JOOL_SIIT.man:
--------------------------------------------------------------------------------
1 | .TP
2 | [\fB!\fP] \fB--instance-name\fP \fIstring\fP
3 | Name of the *iptables* SIIT Jool instance to send the packets to.
4 | Defaults to "default".
5 | .PP
6 | Sends packets to some SIIT Jool instance in the current namespace.
7 | The instance needs to be configured separately.
8 |
--------------------------------------------------------------------------------
/src/usr/joold/Makefile.am:
--------------------------------------------------------------------------------
1 | # Note to myself: documentation tends to call these "PROGRAMS" "targets".
2 | # "joold" is a "target".
3 |
4 | bin_PROGRAMS = joold
5 | joold_SOURCES = \
6 | joold.c \
7 | json.c json.h \
8 | log.h
9 |
10 | joold_CFLAGS = ${WARNINGCFLAGS}
11 | joold_CFLAGS += -I${top_srcdir}/src
12 | joold_CFLAGS += ${LIBNLGENL3_CFLAGS}
13 |
14 | joold_LDADD = ${LIBNLGENL3_LIBS}
15 | joold_LDADD += ../nl/libjoolnl.la
16 | joold_LDADD += ../util/libjoolutil.la
17 | joold_LDADD += ../argp/libjoolargp.la
18 |
19 | dist_man_MANS = joold.8
20 |
--------------------------------------------------------------------------------
/src/usr/joold/json.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_JOOLD_JSON_H_
2 | #define SRC_USR_JOOLD_JSON_H_
3 |
4 | #include "usr/util/cJSON.h"
5 |
6 | int read_json(char const *, cJSON **);
7 |
8 | int json2str(char const *, cJSON *, char const *, char **);
9 | int json2int(char const *, cJSON *, char const *, int *);
10 |
11 | #endif /* SRC_USR_JOOLD_JSON_H_ */
12 |
--------------------------------------------------------------------------------
/src/usr/joold/log.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_JOOLD_LOG_H_
2 | #define SRC_USR_JOOLD_LOG_H_
3 |
4 | #ifdef JOOLD_DEBUG
5 | #define SYSLOG_DBG(...) syslog(LOG_DEBUG, __VA_ARGS__);
6 | #else
7 | #define SYSLOG_DBG(...)
8 | #endif
9 |
10 | #endif /* SRC_USR_JOOLD_LOG_H_ */
11 |
--------------------------------------------------------------------------------
/src/usr/nat64/Makefile.am:
--------------------------------------------------------------------------------
1 | # Note to myself: documentation tends to call these "PROGRAMS" "targets".
2 | # "jool" is a "target".
3 |
4 | bin_PROGRAMS = jool
5 | jool_SOURCES = main-nat64.c
6 |
7 | jool_CFLAGS = ${WARNINGCFLAGS}
8 | jool_CFLAGS += -I${top_srcdir}/src
9 |
10 | jool_LDADD = ../argp/libjoolargp.la
11 |
12 | dist_man_MANS = jool.8
13 |
14 | if ENABLE_BASH_COMPLETION
15 | bashcompletiondir = $(BASH_COMPLETION_DIR)
16 | dist_bashcompletion_DATA = jool.bash
17 | endif
18 |
--------------------------------------------------------------------------------
/src/usr/nat64/main-nat64.c:
--------------------------------------------------------------------------------
1 | #include "usr/argp/main.h"
2 | #include "usr/argp/xlator_type.h"
3 |
4 | int main(int argc, char **argv)
5 | {
6 | xt_set(XT_NAT64);
7 | return jool_main(argc, argv);
8 | }
9 |
--------------------------------------------------------------------------------
/src/usr/nl/Makefile.am:
--------------------------------------------------------------------------------
1 | noinst_LTLIBRARIES = libjoolnl.la
2 |
3 | libjoolnl_la_SOURCES = \
4 | address.c address.h \
5 | attribute.c attribute.h \
6 | bib.c bib.h \
7 | denylist4.c denylist4.h \
8 | common.c common.h \
9 | core.c core.h \
10 | eamt.c eamt.h \
11 | file.c file.h \
12 | global.c global.h \
13 | instance.c instance.h \
14 | joold.c joold.h \
15 | json.c json.h \
16 | pool4.c pool4.h \
17 | session.c session.h \
18 | stats.c stats.h \
19 | wrapper-config.c \
20 | wrapper-global.c \
21 | wrapper-types.c
22 |
23 | libjoolnl_la_CFLAGS = ${WARNINGCFLAGS}
24 | libjoolnl_la_CFLAGS += -I${top_srcdir}/src
25 | libjoolnl_la_CFLAGS += ${LIBNLGENL3_CFLAGS}
26 |
27 | libjoolnl_la_LIBADD = ${LIBNLGENL3_LIBS}
28 | libjoolnl_la_LIBADD += ../util/libjoolutil.la
29 |
30 |
--------------------------------------------------------------------------------
/src/usr/nl/address.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_NL_ADDRESS_H_
2 | #define SRC_USR_NL_ADDRESS_H_
3 |
4 | #include "usr/nl/core.h"
5 |
6 | struct jool_result joolnl_address_query64(
7 | struct joolnl_socket *sk,
8 | char const *iname,
9 | struct in6_addr const *addr,
10 | struct result_addrxlat64 *result
11 | );
12 |
13 | struct jool_result joolnl_address_query46(
14 | struct joolnl_socket *sk,
15 | char const *iname,
16 | struct in_addr const *addr,
17 | struct result_addrxlat46 *result
18 | );
19 |
20 | #endif /* SRC_USR_NL_ADDRESS_H_ */
21 |
--------------------------------------------------------------------------------
/src/usr/nl/common.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_NL_COMMON_H_
2 | #define SRC_USR_NL_COMMON_H_
3 |
4 | #include
5 | #include "usr/util/result.h"
6 |
7 | struct jool_result joolnl_err_msgsize(void);
8 |
9 | struct jool_result joolnl_init_foreach(struct nl_msg *response, bool *done);
10 | struct jool_result joolnl_init_foreach_list(struct nl_msg *msg,
11 | char const *what, bool *done);
12 |
13 | #endif /* SRC_USR_NL_COMMON_H_ */
14 |
--------------------------------------------------------------------------------
/src/usr/nl/file.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_NL_FILE_H_
2 | #define SRC_USR_NL_FILE_H_
3 |
4 | #include "common/config.h"
5 | #include "usr/nl/core.h"
6 |
7 | struct jool_result joolnl_file_parse(
8 | struct joolnl_socket *sk,
9 | xlator_type xt,
10 | char const *iname,
11 | char const *file_name,
12 | bool force
13 | );
14 |
15 | struct jool_result joolnl_file_get_iname(
16 | char const *file_name,
17 | char **out
18 | );
19 |
20 | #endif /* SRC_USR_NL_FILE_H_ */
21 |
--------------------------------------------------------------------------------
/src/usr/nl/global.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_NL_GLOBAL_H_
2 | #define SRC_USR_NL_GLOBAL_H_
3 |
4 | #include "common/global.h"
5 | #include "usr/nl/core.h"
6 |
7 | typedef struct jool_result (*joolnl_global_foreach_cb)(
8 | struct joolnl_global_meta const *metadata, void *value, void *args
9 | );
10 |
11 | struct jool_result joolnl_global_foreach(
12 | struct joolnl_socket *sk,
13 | char const *iname,
14 | joolnl_global_foreach_cb cb,
15 | void *args
16 | );
17 |
18 | struct jool_result joolnl_global_update(
19 | struct joolnl_socket *sk,
20 | char const *iname,
21 | struct joolnl_global_meta const *meta,
22 | char const *value,
23 | bool force
24 | );
25 |
26 | #endif /* SRC_USR_NL_GLOBAL_H_ */
27 |
--------------------------------------------------------------------------------
/src/usr/nl/joold.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_NL_JOOLD_H_
2 | #define SRC_USR_NL_JOOLD_H_
3 |
4 | #include "usr/nl/core.h"
5 |
6 | struct jool_result joolnl_joold_add(
7 | struct joolnl_socket *sk,
8 | char const *iname,
9 | void const *data,
10 | size_t data_len
11 | );
12 |
13 | struct jool_result joolnl_joold_advertise(
14 | struct joolnl_socket *sk,
15 | char const *iname
16 | );
17 |
18 | struct jool_result joolnl_joold_ack(
19 | struct joolnl_socket *sk,
20 | char const *iname
21 | );
22 |
23 | #endif /* SRC_USR_NL_JOOLD_H_ */
24 |
--------------------------------------------------------------------------------
/src/usr/nl/json.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_NL_JSON_H_
2 | #define SRC_USR_NL_JSON_H_
3 |
4 | #include
5 | #include "usr/util/cJSON.h"
6 | #include "usr/util/result.h"
7 |
8 | struct jool_result type_mismatch(char const *field, cJSON *json,
9 | char const *expected);
10 | struct jool_result validate_uint(char const *field_name, cJSON *node,
11 | __u64 min, __u64 max);
12 |
13 | #endif /* SRC_USR_NL_JSON_H_ */
14 |
--------------------------------------------------------------------------------
/src/usr/nl/stats.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_NL_STATS_H_
2 | #define SRC_USR_NL_STATS_H_
3 |
4 | #include "common/stats.h"
5 | #include "usr/nl/core.h"
6 |
7 | struct joolnl_stat_metadata {
8 | enum jool_stat_id id;
9 | char *name;
10 | char *doc;
11 | };
12 |
13 | struct joolnl_stat {
14 | struct joolnl_stat_metadata meta;
15 | __u64 value;
16 | };
17 |
18 | typedef struct jool_result (*joolnl_stats_foreach_cb)(
19 | struct joolnl_stat const *entry, void *args
20 | );
21 | struct jool_result joolnl_stats_foreach(
22 | struct joolnl_socket *sk,
23 | char const *iname,
24 | joolnl_stats_foreach_cb cb,
25 | void *args
26 | );
27 |
28 | #endif /* SRC_USR_NL_STATS_H_ */
29 |
--------------------------------------------------------------------------------
/src/usr/nl/wrapper-config.c:
--------------------------------------------------------------------------------
1 | #include "common/config.c"
2 |
--------------------------------------------------------------------------------
/src/usr/nl/wrapper-global.c:
--------------------------------------------------------------------------------
1 | #include "common/global.c"
2 |
--------------------------------------------------------------------------------
/src/usr/nl/wrapper-types.c:
--------------------------------------------------------------------------------
1 | #include "common/types.c"
2 |
--------------------------------------------------------------------------------
/src/usr/siit/Makefile.am:
--------------------------------------------------------------------------------
1 | # Note to myself: documentation tends to call these "PROGRAMS" "targets".
2 | # "jool_siit" is a "target".
3 |
4 | bin_PROGRAMS = jool_siit
5 | jool_siit_SOURCES = main-siit.c
6 |
7 | jool_siit_CFLAGS = ${WARNINGCFLAGS}
8 | jool_siit_CFLAGS += -I${top_srcdir}/src
9 |
10 | jool_siit_LDADD = ../argp/libjoolargp.la
11 |
12 | dist_man_MANS = jool_siit.8
13 |
14 | if ENABLE_BASH_COMPLETION
15 | bashcompletiondir = $(BASH_COMPLETION_DIR)
16 | dist_bashcompletion_DATA = jool_siit.bash
17 | endif
18 |
--------------------------------------------------------------------------------
/src/usr/siit/main-siit.c:
--------------------------------------------------------------------------------
1 | #include "usr/argp/main.h"
2 | #include "usr/argp/xlator_type.h"
3 |
4 | int main(int argc, char **argv)
5 | {
6 | xt_set(XT_SIIT);
7 | return jool_main(argc, argv);
8 | }
9 |
--------------------------------------------------------------------------------
/src/usr/util/Makefile.am:
--------------------------------------------------------------------------------
1 | noinst_LTLIBRARIES = libjoolutil.la
2 |
3 | libjoolutil_la_SOURCES = \
4 | cJSON.c cJSON.h \
5 | file.c file.h \
6 | result.c result.h \
7 | str_utils.c str_utils.h
8 |
9 | libjoolutil_la_CFLAGS = ${WARNINGCFLAGS}
10 | libjoolutil_la_CFLAGS += -I${top_srcdir}/src
11 |
--------------------------------------------------------------------------------
/src/usr/util/file.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_UTIL_FILE_H_
2 | #define SRC_USR_UTIL_FILE_H_
3 |
4 | #include "usr/util/result.h"
5 |
6 | struct jool_result file_to_string(char const *, char **);
7 |
8 | #endif /* SRC_USR_UTIL_FILE_H_ */
9 |
--------------------------------------------------------------------------------
/src/usr/util/result.h:
--------------------------------------------------------------------------------
1 | #ifndef SRC_USR_UTIL_RESULT_H_
2 | #define SRC_USR_UTIL_RESULT_H_
3 |
4 | #include
5 |
6 | /* -- Jool Result Flags -- */
7 | /* Does msg need to be freed? */
8 | #define JRF_MSG_IN_HEAP (1 << 0)
9 | /*
10 | * Was this jool_result initialized?
11 | * This flag doesn't work on its own, obviously. Zeroize the result beforehand
12 | * if you plan on reading it.
13 | */
14 | #define JRF_INITIALIZED (1 << 1)
15 |
16 | struct jool_result {
17 | int error;
18 | char *msg;
19 | unsigned int flags;
20 | };
21 |
22 | struct jool_result result_success(void);
23 | struct jool_result result_from_error(int errcode, char const *msg, ...);
24 | struct jool_result result_from_enomem(void);
25 |
26 | void result_cleanup(struct jool_result *);
27 |
28 | #endif /* SRC_USR_UTIL_RESULT_H_ */
29 |
--------------------------------------------------------------------------------
/test/graybox/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 | SUBDIRS = mod usr
3 |
--------------------------------------------------------------------------------
/test/graybox/README.md:
--------------------------------------------------------------------------------
1 | # Graybox
2 |
3 | The "graybox" tests are the logical step after the unit tests. They are a bunch of packet exchanges between a custom IPv6/v4 raw packet sender and validator (named `graybox`) and an actual Jool binary.
4 |
5 | The name used to stem from "Gray Box Testing," but it quickly became an additional white box.
6 |
7 | ## Compiling the test binaries
8 |
9 | Install libnl-genl-3-dev, then
10 |
11 | ./autogen.sh
12 | ./configure
13 | make
14 |
15 | Don't install these binaries; it's not necessary nor recommended.
16 |
17 | ## Running the test suite
18 |
19 | See [`test-suite/README.md`](test-suite/README.md)
20 |
--------------------------------------------------------------------------------
/test/graybox/autogen.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Hello.
4 | # Run this file to generate the configure script.
5 | # You'll need autoconf and automake installed!
6 |
7 | autoreconf --install
8 |
--------------------------------------------------------------------------------
/test/graybox/common/graybox-types.h:
--------------------------------------------------------------------------------
1 | #ifndef TEST_GRAYBOX_COMMON_GRAYBOX_TYPES_H_
2 | #define TEST_GRAYBOX_COMMON_GRAYBOX_TYPES_H_
3 |
4 | #include
5 |
6 | enum graybox_command {
7 | COMMAND_EXPECT_ADD = 1,
8 | COMMAND_EXPECT_FLUSH,
9 | COMMAND_SEND,
10 | COMMAND_STATS_DISPLAY,
11 | COMMAND_STATS_FLUSH,
12 | };
13 |
14 | enum graybox_attribute {
15 | /* Command fields */
16 | ATTR_FILENAME = 1,
17 | ATTR_PKT,
18 | ATTR_EXCEPTIONS,
19 |
20 | /* Response fields */
21 | ATTR_ERROR_CODE,
22 | ATTR_STATS,
23 |
24 | __ATTR_MAX,
25 | };
26 |
27 | struct graybox_proto_stats {
28 | __u32 successes;
29 | __u32 failures;
30 | __u32 queued;
31 | };
32 |
33 | struct graybox_stats {
34 | struct graybox_proto_stats ipv6;
35 | struct graybox_proto_stats ipv4;
36 | };
37 |
38 | #endif /* TEST_GRAYBOX_COMMON_GRAYBOX_TYPES_H_ */
39 |
--------------------------------------------------------------------------------
/test/graybox/configure.ac:
--------------------------------------------------------------------------------
1 | AC_PREREQ([2.68])
2 | AC_INIT([graybox], [1.0.0], [ydahhrk@gmail.com])
3 | AC_CONFIG_SRCDIR([usr/graybox.c])
4 | AM_INIT_AUTOMAKE([subdir-objects])
5 |
6 | AC_PROG_CC
7 | PKG_CHECK_MODULES(LIBNLGENL3, libnl-genl-3.0 >= 3.1)
8 | AC_CONFIG_FILES([Makefile usr/Makefile])
9 | AC_OUTPUT
10 |
--------------------------------------------------------------------------------
/test/graybox/mod/Kbuild:
--------------------------------------------------------------------------------
1 | ccflags-y := -I$(src)/.. -I$(src)/../../../src
2 | #EXTRA_CFLAGS += -DDEBUG
3 |
4 | obj-m += graybox.o
5 |
6 | graybox-objs += diff.o
7 | graybox-objs += nf_hook.o
8 | graybox-objs += expecter.o
9 | graybox-objs += genetlink.o
10 | graybox-objs += sender.o
11 | graybox-objs += nl_handler.o
12 | graybox-objs += ../../../src/mod/common/ipv6_hdr_iterator.o
13 |
--------------------------------------------------------------------------------
/test/graybox/mod/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR := /lib/modules/$(shell uname -r)
2 | KERNEL_DIR := ${MODULES_DIR}/build
3 |
4 | all:
5 | make -C ${KERNEL_DIR} M=$$PWD;
6 | modules:
7 | make -C ${KERNEL_DIR} M=$$PWD $@;
8 | modules_install:
9 | make -C ${KERNEL_DIR} M=$$PWD $@;
10 | install: modules_install
11 | depmod
12 | clean:
13 | make -C ${KERNEL_DIR} M=$$PWD $@;
14 |
15 | insert:
16 | sudo insmod graybox.ko
17 | dmesg | tail -15
18 | remove:
19 | sudo rmmod graybox
20 | sudo dmesg -c
21 |
--------------------------------------------------------------------------------
/test/graybox/mod/diff.h:
--------------------------------------------------------------------------------
1 | #ifndef TEST_GRAYBOX_MOD_HEADER_H_
2 | #define TEST_GRAYBOX_MOD_HEADER_H_
3 |
4 | #include "expecter.h"
5 |
6 | unsigned int collect_errors(struct expected_packet const *expected,
7 | struct sk_buff const *actual);
8 |
9 | #endif /* TEST_GRAYBOX_MOD_HEADER_H_ */
10 |
--------------------------------------------------------------------------------
/test/graybox/mod/expecter.h:
--------------------------------------------------------------------------------
1 | #ifndef _GRAYBOX_MOD_EXPECTER_H
2 | #define _GRAYBOX_MOD_EXPECTER_H
3 |
4 | #include
5 | #include "common/graybox-types.h"
6 | #include "common/types.h"
7 |
8 | struct expected_packet {
9 | char *filename;
10 | unsigned char *bytes;
11 | size_t bytes_len;
12 | struct mtu_plateaus exceptions;
13 | };
14 |
15 | int expecter_setup(void);
16 | void expecter_teardown(void);
17 |
18 | int expecter_add(struct expected_packet *pkt);
19 | void expecter_flush(void);
20 |
21 | void expecter_stat(struct graybox_stats *result);
22 | void expecter_stat_flush(void);
23 |
24 | #endif
25 |
--------------------------------------------------------------------------------
/test/graybox/mod/genetlink.h:
--------------------------------------------------------------------------------
1 | #ifndef _GRAYBOX_MOD_GENETLINK_H
2 | #define _GRAYBOX_MOD_GENETLINK_H
3 |
4 | #include
5 |
6 | void genl_setup(struct genl_family *family);
7 | /* There's no genl_teardown; just unregister the family. */
8 |
9 | int genl_respond(struct genl_info *info, int error);
10 | int genl_respond_attr(struct genl_info *info, int attr_id, void *attr,
11 | size_t attr_len);
12 |
13 | #endif
14 |
--------------------------------------------------------------------------------
/test/graybox/mod/log.h:
--------------------------------------------------------------------------------
1 | #ifndef TEST_GRAYBOX_MOD_LOG_H_
2 | #define TEST_GRAYBOX_MOD_LOG_H_
3 |
4 | #include
5 |
6 | #define log_debug(text, ...) pr_debug("Graybox: " text "\n", ##__VA_ARGS__)
7 | #define log_info(text, ...) pr_info("Graybox: " text "\n", ##__VA_ARGS__)
8 | #define log_err(text, ...) pr_err("Graybox: " text "\n", ##__VA_ARGS__)
9 |
10 | #endif /* TEST_GRAYBOX_MOD_LOG_H_ */
11 |
--------------------------------------------------------------------------------
/test/graybox/mod/nl_handler.h:
--------------------------------------------------------------------------------
1 | #ifndef GRAYBOX_MOD_NLHANDLER_H
2 | #define GRAYBOX_MOD_NLHANDLER_H
3 |
4 | int nlhandler_setup(void);
5 | void nlhandler_teardown(void);
6 |
7 | #endif
8 |
--------------------------------------------------------------------------------
/test/graybox/mod/sender.h:
--------------------------------------------------------------------------------
1 | #ifndef _GRAYBOX_MOD_SENDER_H
2 | #define _GRAYBOX_MOD_SENDER_H
3 |
4 | #include
5 |
6 | int sender_send(char *pkt_name, void *pkt, size_t pkt_len);
7 |
8 | #endif
9 |
--------------------------------------------------------------------------------
/test/graybox/mod/util.h:
--------------------------------------------------------------------------------
1 | #ifndef FRAGS_MOD_UTIL_H
2 | #define FRAGS_MOD_UTIL_H
3 |
4 | static inline int get_l3_proto(void *l3_hdr)
5 | {
6 | return (*((char *) l3_hdr)) >> 4;
7 | }
8 |
9 | #endif
10 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/README.md:
--------------------------------------------------------------------------------
1 | # Graybox Test Suite
2 |
3 | [Compile Graybox](../README.md), install the version of Jool you want to test, then
4 |
5 | sudo ./run.sh
6 |
7 | It takes about 6 minutes.
8 |
9 | Please [report](https://github.com/NICMx/Jool/issues) any errors or queued packets you find. Please include your distro, kernel version (`uname -r`) and the tail of `dmesg` (after the "SIIT/NAT64 Jool vX.Y.Z.W module inserted" caption).
10 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/namespace-destroy.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Reverts the stuff ./namespace-create.sh did.
4 |
5 | echo "Destroying the Graybox network namespaces..."
6 |
7 | ip netns exec joolns ip link del to_client_v6
8 | ip netns exec joolns ip link del to_client_v4
9 |
10 | ip netns del joolns
11 | ip netns del client6ns
12 | ip netns del client4ns
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/end-jool.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | modprobe -rq jool
4 |
5 | ip route del 2001:db8:1::/96 via 2001:db8::5
6 | ip addr flush dev to_client_v6 scope global
7 | ip addr flush dev to_client_v4 scope global
8 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/end-n4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ip addr flush dev to_jool_v4 scope global
4 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/end-n6.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ip route del 64:ff9b::/96 via 2001:db8::1
4 | ip addr flush dev to_jool_v6 scope global
5 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/end.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Reverts ./setup.sh.
4 | # Does not destroy the namespaces.
5 |
6 | ip netns exec joolns `dirname $0`/end-jool.sh
7 | ip netns exec client6ns `dirname $0`/end-n6.sh
8 | ip netns exec client4ns `dirname $0`/end-n4.sh
9 |
10 | rmmod graybox
11 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/icmp4-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/icmp4-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/icmp4-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/icmp4-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/icmp6-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/icmp6-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/icmp6-session-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/icmp6-session-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/icmp6-session-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/icmp6-session-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/icmp6-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/icmp6-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/minmtu6-big-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/minmtu6-big-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/minmtu6-big0-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/minmtu6-big0-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/frag/minmtu6-big1-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/frag/minmtu6-big1-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/icmp-error/bibless-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/icmp-error/bibless-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/icmp-error/bibless-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/icmp-error/bibless-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/icmp-error/ptb46-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/icmp-error/ptb46-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/icmp-error/ptb46-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/icmp-error/ptb46-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/icmp-error/ptb64-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/icmp-error/ptb64-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/icmp-error/ptb64-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/icmp-error/ptb64-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/issue132/expected-off.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/issue132/expected-off.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/issue132/expected-on.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/issue132/expected-on.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/issue132/test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/issue132/test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb46/expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb46/expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb46/session-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb46/session-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb46/session-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb46/session-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb46/test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb46/test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb64/expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb64/expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb64/session-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb64/session-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb64/session-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb64/session-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb64/test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb64/test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb66/expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb66/expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb66/session-expected.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb66/session-expected.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb66/session-test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb66/session-test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/ptb66/test.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/ptb66/test.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/so/46-receiver.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/so/46-receiver.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/so/46-sender.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/so/46-sender.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/so/66-receiver.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/so/66-receiver.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/so/66-sender.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/so/66-sender.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/so/success-receiver.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/so/success-receiver.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/so/success-sender4.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/so/success-sender4.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/manual/so/success-sender6.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/manual/so/success-sender6.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/README.md:
--------------------------------------------------------------------------------
1 | # Graybox Tests: pktgen
2 |
3 | See [../../siit/pktgen/README.md](../../siit/pktgen/README.md).
4 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4err-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4err-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4err-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4err-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4info-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4info-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4info-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4info-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4info-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4info-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4info-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-icmp4info-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-tcp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-tcp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-tcp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-tcp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-tcp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-tcp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-tcp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-tcp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-udp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-udp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-udp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-udp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-udp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-udp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/4-udp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/4-udp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6err-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6err-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6err-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6err-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6info-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6info-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6info-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6info-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6info-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6info-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6info-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-icmp6info-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-udp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-udp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-udp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-udp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-udp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-udp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/receiver/6-udp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/receiver/6-udp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4err-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4err-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4err-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4err-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4info-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4info-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4info-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4info-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4info-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4info-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4info-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-icmp4info-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-udp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-udp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-udp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-udp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-udp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-udp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/4-udp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/4-udp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6err-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6err-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6err-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6err-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6info-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6info-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6info-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6info-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6info-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6info-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6info-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-icmp6info-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-tcp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-tcp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-tcp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-tcp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-tcp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-tcp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-tcp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-tcp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-udp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-udp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-udp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-udp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-udp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-udp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/pktgen/sender/6-udp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/nat64/pktgen/sender/6-udp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/setup-n4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ip addr flush dev to_jool_v4 scope global
4 | ip link set to_jool_v4 up
5 | ip addr add 192.0.2.5/24 dev to_jool_v4
6 | sysctl -w net.ipv4.conf.all.forwarding=1 > /dev/null
7 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/setup-n6.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ip addr flush dev to_jool_v6 scope global
4 | ip link set to_jool_v6 up
5 | ip addr add 2001:db8::5/96 dev to_jool_v6
6 | ip -6 route add 64:ff9b::/96 via 2001:db8::1
7 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/nat64/setup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Assumes the network namespaces have already been created.
4 |
5 | ip netns exec joolns `dirname $0`/setup-jool.sh $1
6 | ip netns exec client6ns `dirname $0`/setup-n6.sh
7 | ip netns exec client4ns `dirname $0`/setup-n4.sh
8 |
9 | insmod `dirname $0`/../../mod/graybox.ko
10 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/aae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/aae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/aat1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/aat1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/aat2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/aat2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/aat3.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/aat3.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/abe1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/abe1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/abe2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/abe2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/abt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/abt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/abt2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/abt2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/abt3.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/abt3.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ace1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ace1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ace2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ace2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ace3.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ace3.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ace4.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ace4.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ace5.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ace5.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ace6.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ace6.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/act1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/act1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/act2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/act2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/act3.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/act3.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/act4.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/act4.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/act5.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/act5.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/act6.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/act6.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ade1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ade1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ade2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ade2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/adt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/adt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/adt2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/adt2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bat1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bat1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bbe1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bbe1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bbt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bbt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bce1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bce1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bct1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bct1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bde1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bde1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bdt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bdt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bee1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bee1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/bet1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/bet1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cae2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cae2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cat1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cat1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cat2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cat2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cbe1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cbe1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cbt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cbt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cce1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cce1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cce2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cce2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cct1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cct1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cde1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cde1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cdt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cdt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cee1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cee1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cet1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cet1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cet2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cet2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cfe1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cfe1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cfe2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cfe2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cft1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cft1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cge1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cge1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cge2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cge2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cgt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cgt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cgt2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cgt2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/che1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/che1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cht1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cht1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cie1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cie1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cit1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cit1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cje1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cje1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cje2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cje2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cje3.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cje3.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cje4.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cje4.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cjt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cjt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cjt2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cjt2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cjt3.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cjt3.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/cjt4.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/cjt4.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/dae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/dae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/dat1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/dat1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/dbe1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/dbe1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/dbe2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/dbe2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/dbt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/dbt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/dbt2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/dbt2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/dbt3.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/dbt3.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/eae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/eae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/eat1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/eat1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ebe1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ebe1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ece1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ece1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ect1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ect1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/fae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/fae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/fat1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/fat1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/fbe1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/fbe1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/fbt1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/fbt1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/gae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/gae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/gat1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/gat1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/hae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/hae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/hae2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/hae2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/hat1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/hat1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/hat2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/hat2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ia1e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ia1e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ia1t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ia1t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ia2e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ia2e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ia2t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ia2t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ib1e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ib1e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ib1t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ib1t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ib2e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ib2e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ib2t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ib2t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ib3e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ib3e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ib3t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ib3t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic1e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic1e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic1t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic1t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic2e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic2e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic2t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic2t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic3e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic3e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic3t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic3t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic4e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic4e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic4t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic4t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic5e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic5e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic5t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic5t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic6e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic6e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic6t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic6t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic7e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic7e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/ic7t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/ic7t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idae.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idae.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idat.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idat.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idbe.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idbe.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idbt.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idbt.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idce.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idce.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idct.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idct.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idde.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idde.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/iddt.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/iddt.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idee.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idee.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idet.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idet.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idfe.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idfe.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idft.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idft.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idge.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idge.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idgt.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idgt.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idhe.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idhe.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idht.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idht.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idie.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idie.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idit.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idit.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idke.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idke.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idkt.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idkt.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idye.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idye.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idyt.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idyt.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idze.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idze.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/idzt.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/idzt.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jae.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jae.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jat.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jat.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jbae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jbae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jbae2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jbae2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jbat.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jbat.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jbbe.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jbbe.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jbbt.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jbbt.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jcae1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jcae1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jcae2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jcae2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jcat.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jcat.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jcbe.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jcbe.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/7915/jcbt.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/7915/jcbt.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/end-jool.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | modprobe -rq jool_siit
4 |
5 | ip addr flush dev to_client_v6 scope global
6 | ip addr flush dev to_client_v4 scope global
7 | ip route del 2001:db8:3::/120 via 2001:db8:1c0:2:21::
8 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/end-n4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ip addr flush dev to_jool_v4 scope global
4 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/end-n6.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ip addr flush dev to_jool_v6 scope global
4 | ip route del 2001:db8:1c6:3364::/40 via 2001:db8:1c0:2:1::
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/end.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Reverts ./setup.sh.
4 | # Does not destroy the namespaces.
5 |
6 | ip netns exec joolns `dirname $0`/end-jool.sh
7 | ip netns exec client6ns `dirname $0`/end-n6.sh
8 | ip netns exec client4ns `dirname $0`/end-n4.sh
9 |
10 | rmmod graybox
11 |
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/manual/6791v46e-empty.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/manual/6791v46e-empty.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/manual/6791v46e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/manual/6791v46e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/manual/6791v46t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/manual/6791v46t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/manual/6791v64e-empty.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/manual/6791v64e-empty.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/manual/6791v64e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/manual/6791v64e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/manual/6791v64t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/manual/6791v64t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/manual/6791v66e.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/manual/6791v66e.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/manual/6791v66t.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/manual/6791v66t.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4err-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4err-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4err-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4err-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4info-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4info-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4info-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4info-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4info-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4info-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4info-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-icmp4info-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-tcp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/4-udp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6err-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6err-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6err-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6err-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6info-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6info-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6info-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6info-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6info-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6info-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6info-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-icmp6info-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-tcp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/receiver/6-udp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-icmp4err-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-icmp4err-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-icmp4err-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-icmp4err-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-icmp4info-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-icmp4info-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-icmp4info-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-icmp4info-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-icmp4info-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-icmp4info-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-icmp4info-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-icmp4info-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-tcp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/4-udp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-icmp6err-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-icmp6err-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-icmp6err-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-icmp6err-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-icmp6info-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-icmp6info-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-icmp6info-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-icmp6info-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-icmp6info-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-icmp6info-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-icmp6info-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-icmp6info-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-tcp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumfail-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-df-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-df-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-nodf-frag0.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-nodf-frag0.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-nodf-frag1.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-nodf-frag1.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-nodf-frag2.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-nodf-frag2.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-nodf-nofrag.pkt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NICMx/Jool/8129fd716a84940bef48930dc4c4b255ee47e28a/test/graybox/test-suite/siit/pktgen/sender/6-udp-csumok-nodf-nofrag.pkt
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/setup-n4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ip addr flush dev to_jool_v4 scope global
4 | ip link set to_jool_v4 up
5 | ip addr add 198.51.100.2/24 dev to_jool_v4
6 | ip route add 192.0.2.0/24 via 198.51.100.1
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/setup-n6.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ip addr flush dev to_jool_v6 scope global
4 | ip link set to_jool_v6 up
5 | ip addr add 2001:db8:1c0:2:21::/64 dev to_jool_v6
6 | ip route add 2001:db8:1c6:3364::/40 via 2001:db8:1c0:2:1::
--------------------------------------------------------------------------------
/test/graybox/test-suite/siit/setup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Assumes the network namespaces have already been created.
4 |
5 | ip netns exec joolns `dirname $0`/setup-jool.sh $1
6 | ip netns exec client6ns `dirname $0`/setup-n6.sh
7 | ip netns exec client4ns `dirname $0`/setup-n4.sh
8 |
9 | insmod `dirname $0`/../../mod/graybox.ko
10 |
--------------------------------------------------------------------------------
/test/graybox/usr/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 |
3 | bin_PROGRAMS = graybox
4 | graybox_SOURCES = \
5 | graybox.c \
6 | genetlink.c genetlink.h \
7 | log.c log.h \
8 | command/expect.c command/expect.h \
9 | command/send.c command/send.h \
10 | command/stats.c command/stats.h \
11 | command/common.c command/common.h
12 |
13 | graybox_CFLAGS = -Wall -pedantic -I${srcdir}/.. ${LIBNLGENL3_CFLAGS}
14 | graybox_LDADD = ${LIBNLGENL3_LIBS}
15 |
16 | man_MANS = graybox.7
17 |
--------------------------------------------------------------------------------
/test/graybox/usr/command/common.h:
--------------------------------------------------------------------------------
1 | #ifndef _GRAYBOX_USR_CMD_COMMON_H
2 | #define _GRAYBOX_USR_CMD_COMMON_H
3 |
4 | #include
5 |
6 | int load_pkt(char *filename, unsigned char **result, size_t *result_len);
7 |
8 | #endif
9 |
--------------------------------------------------------------------------------
/test/graybox/usr/command/expect.h:
--------------------------------------------------------------------------------
1 | #ifndef _GRAYBOX_USR_CMD_EXPECT_H
2 | #define _GRAYBOX_USR_CMD_EXPECT_H
3 |
4 | #include
5 | #include
6 | #include "common/graybox-types.h"
7 |
8 | #define MAX_EXCEPTIONS 64u
9 |
10 | struct expect_add_request {
11 | char *file_name;
12 | unsigned char *pkt;
13 | size_t pkt_len;
14 | unsigned long int exceptions[MAX_EXCEPTIONS];
15 | unsigned int exceptions_len;
16 | };
17 |
18 | int expect_init_request(int argc, char **argv, enum graybox_command *cmd,
19 | struct expect_add_request *req);
20 | void expect_add_clean(struct expect_add_request *req);
21 | int expect_add_build_pkt(struct expect_add_request *req, struct nl_msg *pkt);
22 |
23 | #endif
24 |
--------------------------------------------------------------------------------
/test/graybox/usr/command/send.h:
--------------------------------------------------------------------------------
1 | #ifndef _GRAYBOX_USR_CMD_SEND_H
2 | #define _GRAYBOX_USR_CMD_SEND_H
3 |
4 | #include
5 | #include
6 | #include "common/graybox-types.h"
7 |
8 | struct send_request {
9 | char *file_name;
10 | unsigned char *pkt;
11 | size_t pkt_len;
12 | };
13 |
14 | int send_init_request(int argc, char **argv, enum graybox_command *cmd,
15 | struct send_request *req);
16 | void send_clean(struct send_request *req);
17 | int send_build_pkt(struct send_request *req, struct nl_msg *pkt);
18 |
19 | #endif
20 |
--------------------------------------------------------------------------------
/test/graybox/usr/command/stats.h:
--------------------------------------------------------------------------------
1 | #ifndef _GRAYBOX_USR_CMD_STATS_H
2 | #define _GRAYBOX_USR_CMD_STATS_H
3 |
4 | #include
5 | #include "common/graybox-types.h"
6 |
7 | int stats_init_request(int argc, char **argv, enum graybox_command *cmd);
8 | int stats_response_handle(struct nlattr **attrs, void *arg);
9 |
10 | #endif
11 |
--------------------------------------------------------------------------------
/test/graybox/usr/genetlink.h:
--------------------------------------------------------------------------------
1 | #ifndef _GRAYBOX_USR_GENETLINK_H
2 | #define _GRAYBOX_USR_GENETLINK_H
3 |
4 | #include
5 |
6 | int nlsocket_setup(char *family);
7 | void nlsocket_teardown();
8 |
9 | int nlsocket_create_msg(int cmd, struct nl_msg **msg);
10 | typedef int (*joolnl_response_cb)(struct nlattr **attrs, void *);
11 | int nlsocket_send(struct nl_msg *msg, joolnl_response_cb cb, void *cb_arg);
12 |
13 | int netlink_print_error(int error);
14 |
15 | #endif
16 |
--------------------------------------------------------------------------------
/test/graybox/usr/log.c:
--------------------------------------------------------------------------------
1 | #include "usr/log.h"
2 | #include
3 | #include
4 |
5 | void pr_err(const char *format, ...)
6 | {
7 | va_list args;
8 |
9 | fprintf(stderr, "Error: ");
10 |
11 | va_start(args, format);
12 | vfprintf(stderr, format, args);
13 | va_end(args);
14 |
15 | fprintf(stderr, "\n");
16 | }
17 |
--------------------------------------------------------------------------------
/test/graybox/usr/log.h:
--------------------------------------------------------------------------------
1 | #ifndef TEST_GRAYBOX_USR_LOG_H_
2 | #define TEST_GRAYBOX_USR_LOG_H_
3 |
4 | #if __GNUC__
5 | #define CHECK_FORMAT(str, args) __attribute__((format(printf, str, args)))
6 | #else
7 | #define CHECK_FORMAT(str, args) /* Nothing */
8 | #endif
9 |
10 | void pr_err(const char *fmt, ...) CHECK_FORMAT(1, 2);
11 |
12 | #endif /* TEST_GRAYBOX_USR_LOG_H_ */
13 |
--------------------------------------------------------------------------------
/test/jool-regression/README.md:
--------------------------------------------------------------------------------
1 | A full regression test suite.
2 |
3 | WARNING: Requires elevated permissions. It will modify /etc/rc.local and /etc/default/grub.
4 |
5 | The purpose of this script is to automate unit and graybox testing on Jool, being compiled and run
6 | at every kernel the host machine has installed.
7 |
8 | To run this script, make sure to modify the `config` file to suit your environment:
9 |
10 | - Set where your git repository is, and where your Jool repository is.
11 | - Set whichever branch you want to test
12 | - It should automatically detect kernels installed.
13 |
14 | This script assumes your /boot/grub/grub.cfg file contains both the regular kernel image and the "recovery mode"
15 | for each kernel installed (it will iterate through the kernel's list in steps of two).
16 |
17 | Run `jool-init.sh` to start the test suite.
18 |
19 |
--------------------------------------------------------------------------------
/test/jool-regression/config:
--------------------------------------------------------------------------------
1 | OLDIFS=$' \t\n'
2 | IFS=$'\n'
3 | GIT_DIR=/home/jool/git
4 | JOOL_DIR=/home/jool/git/Jool
5 | BRANCH=issue189
6 | LINUX_KERNEL=($(cat /boot/grub/grub.cfg|grep -e "^\smenuentry"|cut -d"'" -f2))
7 | LINUX_INDEX=8
8 | RESULT_LOG=$(pwd)/results.log
9 |
--------------------------------------------------------------------------------
/test/jool-regression/jool-compile.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | . config
4 | STATUS=0
5 |
6 | cd $JOOL_DIR
7 | cd mod
8 | make
9 | sudo make install
10 | if [ $? -ne 0 ]; then
11 | STATUS=$((STATUS+1))
12 | fi
13 | cd ../usr
14 | ./autogen.sh
15 | ./configure
16 | make
17 | sudo make install
18 | if [ $? -ne 0 ]; then
19 | STATUS=$((STATUS+1))
20 | fi
21 | exit $STATUS
22 |
--------------------------------------------------------------------------------
/test/jool-regression/jool-git.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # This updates the Jool repository, then checks out whichever branch you want to test
3 |
4 | # Load configuration
5 | . config
6 |
7 | echo "Cleaning Jool repository"|tee -a $RESULT_LOG
8 | # Move to Jool directory and clean mod and usr
9 | cd $JOOL_DIR/mod
10 | make clean
11 | cd $JOOL_DIR/usr
12 | make clean
13 | cd $JOOL_DIR
14 |
15 | # Make sure we have nothing polluting the directory
16 | git checkout .
17 |
18 | echo "Jool repository clean"|tee -a $RESULT_LOG
19 | echo "Updating Jool repository"|tee -a $RESULT_LOG
20 |
21 | # Update
22 | git pull
23 |
24 | echo "Checking out "|tee -a $RESULT_LOG
25 | # Checkout whichever branch we want to test
26 | git checkout $BRANCH
27 |
28 |
--------------------------------------------------------------------------------
/test/jool-regression/jool-graybox.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | . config
3 |
4 | cd $JOOL_DIR/test/graybox
5 | ./run-netns-graybox.sh
6 |
7 |
--------------------------------------------------------------------------------
/test/jool-regression/jool-unit.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | . config
4 |
5 | cd $JOOL_DIR/test/unit
6 | make
7 | ./test.sh
8 | make clean
9 |
10 |
--------------------------------------------------------------------------------
/test/unit/addr/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 |
4 | UNIT = addr
5 |
6 | obj-m += $(UNIT).o
7 |
8 | $(UNIT)-objs += ../../../src/common/types.o
9 | $(UNIT)-objs += ../../../src/mod/common/types.o
10 | $(UNIT)-objs += ../../../src/mod/common/address.o
11 | $(UNIT)-objs += ../framework/unit_test.o
12 | $(UNIT)-objs += address_test.o
13 |
14 | EXTRA_CFLAGS += -DDEBUG -DUNIT_TESTING
15 | ccflags-y := -I$(src)/../../../src -I$(src)/..
16 |
17 | all:
18 | make -C ${KERNEL_DIR} M=$$PWD;
19 | modules:
20 | make -C ${KERNEL_DIR} M=$$PWD $@;
21 | clean:
22 | make -C ${KERNEL_DIR} M=$$PWD $@;
23 | test:
24 | sudo dmesg -C
25 | -sudo insmod $(UNIT).ko && sudo rmmod $(UNIT)
26 | sudo dmesg -tc | less
27 |
--------------------------------------------------------------------------------
/test/unit/eamt/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 |
4 | UNIT = eamt
5 |
6 | obj-m += $(UNIT).o
7 |
8 | $(UNIT)-objs += ../../../src/common/types.o
9 | $(UNIT)-objs += ../../../src/mod/common/types.o
10 | $(UNIT)-objs += ../../../src/mod/common/address.o
11 | $(UNIT)-objs += ../framework/unit_test.o
12 | $(UNIT)-objs += ../../../src/mod/common/rtrie.o
13 | $(UNIT)-objs += eamt_test.o
14 |
15 | EXTRA_CFLAGS += -DDEBUG -DUNIT_TESTING
16 | ccflags-y := -I$(src)/../../../src -I$(src)/..
17 |
18 | all:
19 | make -C ${KERNEL_DIR} M=$$PWD;
20 | modules:
21 | make -C ${KERNEL_DIR} M=$$PWD $@;
22 | clean:
23 | make -C ${KERNEL_DIR} M=$$PWD $@;
24 | test:
25 | sudo dmesg -C
26 | -sudo insmod $(UNIT).ko && sudo rmmod $(UNIT)
27 | sudo dmesg -tc | less
28 |
--------------------------------------------------------------------------------
/test/unit/filtering/impersonator.c:
--------------------------------------------------------------------------------
1 | #include "mod/common/dev.h"
2 | #include "mod/common/joold.h"
3 | #include "framework/unit_test.h"
4 |
5 | static struct fake {
6 | int junk;
7 | } dummy;
8 |
9 | void joold_add(struct xlator *jool, struct session_entry *entry)
10 | {
11 | /* No code. */
12 | }
13 |
14 | struct joold_queue *joold_alloc(void)
15 | {
16 | return (struct joold_queue *)&dummy;
17 | }
18 |
19 | void joold_get(struct joold_queue *queue)
20 | {
21 | /* No code. */
22 | }
23 |
24 | void joold_put(struct joold_queue *queue)
25 | {
26 | /* No code. */
27 | }
28 |
29 | int foreach_ifa(struct net *ns, int (*cb)(struct in_ifaddr *, void const *),
30 | void const *args)
31 | {
32 | return broken_unit_call(__func__);
33 | }
34 |
--------------------------------------------------------------------------------
/test/unit/framework/bib.c:
--------------------------------------------------------------------------------
1 | #include "framework/bib.h"
2 |
3 | int bib_inject(struct xlator *jool,
4 | char *addr6, u16 port6, char *addr4, u16 port4,
5 | l4_protocol proto, struct bib_entry *entry)
6 | {
7 | int error;
8 |
9 | error = str_to_addr4(addr4, &entry->addr4.l3);
10 | if (error)
11 | return error;
12 | error = str_to_addr6(addr6, &entry->addr6.l3);
13 | if (error)
14 | return error;
15 | entry->addr4.l4 = port4;
16 | entry->addr6.l4 = port6;
17 |
18 | return bib_add_static(jool, entry);
19 | }
20 |
--------------------------------------------------------------------------------
/test/unit/framework/bib.h:
--------------------------------------------------------------------------------
1 | #ifndef _JOOL_UNIT_BIB_H
2 | #define _JOOL_UNIT_BIB_H
3 |
4 | #include "mod/common/db/bib/db.h"
5 |
6 | int bib_inject(struct xlator *jool,
7 | char *addr6, u16 port6, char *addr4, u16 port4,
8 | l4_protocol proto, struct bib_entry *entry);
9 |
10 | #endif /* _JOOL_UNIT_BIB_H */
11 |
--------------------------------------------------------------------------------
/test/unit/framework/send_packet.h:
--------------------------------------------------------------------------------
1 | #ifndef TEST_UNIT_FRAMEWORK_SEND_PACKET_H_
2 | #define TEST_UNIT_FRAMEWORK_SEND_PACKET_H_
3 |
4 | #include "mod/common/steps/send_packet.h"
5 |
6 | extern struct sk_buff *skb_out;
7 |
8 | #endif /* TEST_UNIT_FRAMEWORK_SEND_PACKET_H_ */
9 |
--------------------------------------------------------------------------------
/test/unit/framework/types.h:
--------------------------------------------------------------------------------
1 | #ifndef _JOOL_UNIT_TYPES_H
2 | #define _JOOL_UNIT_TYPES_H
3 |
4 | #include "mod/common/types.h"
5 |
6 |
7 | int init_tuple4(struct tuple *tuple4, char *src_addr, __u16 src_port,
8 | char *dst_addr, __u16 dst_port, l4_protocol l4_proto);
9 | int init_tuple6(struct tuple *tuple6, char *src_addr, __u16 src_port,
10 | char *dst_addr, __u16 dst_port, l4_protocol l4_proto);
11 |
12 |
13 | #endif /* _JOOL_UNIT_TYPES_H */
14 |
--------------------------------------------------------------------------------
/test/unit/impersonator/icmp_wrapper.c:
--------------------------------------------------------------------------------
1 | #include "mod/common/icmp_wrapper.h"
2 |
3 | #include "mod/common/log.h"
4 |
5 | /* The unit tests never spawn threads, so this does not need protection. */
6 | static int sent = 0;
7 |
8 | bool icmp64_send6(struct xlator *jool, struct sk_buff *skb,
9 | icmp_error_code error, __u32 info)
10 | {
11 | return icmp64_send(jool, skb, error, info);
12 | }
13 |
14 | bool icmp64_send4(struct xlator *jool, struct sk_buff *skb,
15 | icmp_error_code error, __u32 info)
16 | {
17 | return icmp64_send(jool, skb, error, info);
18 | }
19 |
20 | bool icmp64_send(struct xlator *jool, struct sk_buff *skb,
21 | icmp_error_code error, __u32 info)
22 | {
23 | log_debug(jool, "Pretending I'm sending an ICMP error.");
24 | sent++;
25 | return true;
26 | }
27 |
28 | int icmp64_pop(void)
29 | {
30 | int result = sent;
31 | sent = 0;
32 | return result;
33 | }
34 |
--------------------------------------------------------------------------------
/test/unit/impersonator/nf_hook.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include "mod/common/kernel_hook.h"
3 |
4 | unsigned int hook_ipv6(void *priv, struct sk_buff *skb,
5 | const struct nf_hook_state *nhs)
6 | {
7 | return NF_ACCEPT;
8 | }
9 |
10 | unsigned int hook_ipv4(void *priv, struct sk_buff *skb,
11 | const struct nf_hook_state *nhs)
12 | {
13 | return NF_ACCEPT;
14 | }
15 |
--------------------------------------------------------------------------------
/test/unit/impersonator/route.c:
--------------------------------------------------------------------------------
1 | #include "mod/common/route.h"
2 |
3 | #include "mod/common/dev.h"
4 | #include "mod/common/log.h"
5 | #include "framework/unit_test.h"
6 |
7 | struct dst_entry *route4(struct xlator *jool, struct flowi4 *flow)
8 | {
9 | log_debug(jool, "Pretending I'm routing an IPv4 packet.");
10 | return NULL;
11 | }
12 |
13 | struct dst_entry *route6(struct xlator *jool, struct flowi6 *flow)
14 | {
15 | log_debug(jool, "Pretending I'm routing an IPv6 packet.");
16 | return NULL;
17 | }
18 |
--------------------------------------------------------------------------------
/test/unit/impersonator/send_packet.c:
--------------------------------------------------------------------------------
1 | #include "framework/send_packet.h"
2 |
3 | #include "mod/common/log.h"
4 |
5 | struct sk_buff *skb_out = NULL;
6 |
7 | verdict sendpkt_send(struct xlation *state)
8 | {
9 | log_debug(state, "Pretending I'm sending a packet.");
10 | skb_out = state->out.skb;
11 | return VERDICT_CONTINUE;
12 | }
13 |
--------------------------------------------------------------------------------
/test/unit/impersonator/stats.c:
--------------------------------------------------------------------------------
1 | #include "mod/common/stats.h"
2 |
3 | static struct jool_stats {
4 | int junk;
5 | } phony;
6 |
7 | struct jool_stats *jstat_alloc(void)
8 | {
9 | return &phony;
10 | }
11 |
12 | void jstat_get(struct jool_stats *stats)
13 | {
14 | /* No code. */
15 | }
16 |
17 | void jstat_put(struct jool_stats *stats)
18 | {
19 | /* No code. */
20 | }
21 |
22 | void jstat_inc(struct jool_stats *stats, enum jool_stat_id stat)
23 | {
24 | /* No code. */
25 | }
26 |
27 | void jstat_dec(struct jool_stats *stats, enum jool_stat_id stat)
28 | {
29 | /* No code. */
30 | }
31 |
32 | void jstat_add(struct jool_stats *stats, enum jool_stat_id stat, int addend)
33 | {
34 | /* No code. */
35 | }
36 |
--------------------------------------------------------------------------------
/test/unit/impersonator/xlator.c:
--------------------------------------------------------------------------------
1 | #include "mod/common/xlator.h"
2 |
3 | #include "mod/common/db/global.h"
4 | #include "mod/common/db/bib/db.h"
5 |
6 | /*
7 | * xlator impersonator for BIB unit tests.
8 | */
9 |
10 | int xlator_init(struct xlator *jool, struct net *ns, char *iname,
11 | xlator_flags flags, struct ipv6_prefix *pool6)
12 | {
13 | int error;
14 |
15 | memset(jool, 0, sizeof(*jool));
16 |
17 | jool->ns = ns;
18 | jool->flags = flags;
19 | strcpy(jool->iname, iname);
20 |
21 | error = globals_init(&jool->globals, XT_NAT64, pool6);
22 | if (error)
23 | return error;
24 | jool->nat64.bib = bib_alloc();
25 |
26 | return jool->nat64.bib ? 0 : -ENOMEM;
27 | }
28 |
29 | void xlator_put(struct xlator *jool)
30 | {
31 | bib_put(jool->nat64.bib);
32 | }
33 |
--------------------------------------------------------------------------------
/test/unit/iterator/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 |
4 | UNIT = iterator
5 |
6 | obj-m += $(UNIT).o
7 |
8 | $(UNIT)-objs += ../../../src/common/types.o
9 | $(UNIT)-objs += ../../../src/mod/common/types.o
10 | $(UNIT)-objs += ../../../src/mod/common/address.o
11 | $(UNIT)-objs += ../framework/unit_test.o
12 | $(UNIT)-objs += ipv6_hdr_iterator_test.o
13 |
14 | EXTRA_CFLAGS += -DDEBUG -DUNIT_TESTING
15 | ccflags-y := -I$(src)/../../../src -I$(src)/..
16 |
17 | all:
18 | make -C ${KERNEL_DIR} M=$$PWD;
19 | modules:
20 | make -C ${KERNEL_DIR} M=$$PWD $@;
21 | clean:
22 | make -C ${KERNEL_DIR} M=$$PWD $@;
23 | test:
24 | sudo dmesg -C
25 | -sudo insmod $(UNIT).ko && sudo rmmod $(UNIT)
26 | sudo dmesg -tc | less
27 |
--------------------------------------------------------------------------------
/test/unit/joolns/impersonator.c:
--------------------------------------------------------------------------------
1 | #include "mod/common/nl/global.h"
2 | #include "mod/common/steps/handling_hairpinning_siit.h"
3 | #include "framework/unit_test.h"
4 |
5 | int global_update(struct jool_globals *cfg, xlator_type xt, bool force,
6 | struct global_value *request, size_t request_size)
7 | {
8 | return -EINVAL;
9 | }
10 |
11 | verdict translating_the_packet(struct xlation *state)
12 | {
13 | return VERDICT_DROP;
14 | }
15 |
16 | bool is_hairpin_siit(struct xlation *state)
17 | {
18 | return false;
19 | }
20 |
21 | verdict handling_hairpinning_siit(struct xlation *old)
22 | {
23 | broken_unit_call(__func__);
24 | return VERDICT_DROP;
25 | }
26 |
--------------------------------------------------------------------------------
/test/unit/page/impersonator.c:
--------------------------------------------------------------------------------
1 | #include "mod/common/dev.h"
2 | #include "mod/common/db/bib/db.h"
3 | #include "mod/common/db/pool4/db.h"
4 | #include "framework/unit_test.h"
5 |
6 | int foreach_ifa(struct net *ns, int (*cb)(struct in_ifaddr *, void const *),
7 | void const *args)
8 | {
9 | return 0;
10 | }
11 |
12 | int bib_foreach(struct bib *db, l4_protocol proto,
13 | bib_foreach_entry_cb cb, void *cb_arg,
14 | const struct ipv4_transport_addr *offset)
15 | {
16 | return broken_unit_call("bib_foreach");
17 | }
18 |
19 | bool pool4db_contains(struct pool4 *pool, struct net *ns, l4_protocol proto,
20 | struct ipv4_transport_addr const *addr)
21 | {
22 | broken_unit_call("pool4db_contains");
23 | return false;
24 | }
25 |
--------------------------------------------------------------------------------
/test/unit/pool4-iterations/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 |
4 | UNIT = pool4-iterations
5 |
6 | obj-m += $(UNIT).o
7 |
8 | $(UNIT)-objs += ../../../src/common/types.o
9 | $(UNIT)-objs += ../../../src/mod/common/types.o
10 | $(UNIT)-objs += ../../../src/mod/common/address.o
11 | $(UNIT)-objs += ../framework/unit_test.o
12 | $(UNIT)-objs += ../../../src/mod/common/rbtree.o
13 | $(UNIT)-objs += ../../../src/mod/nat64/pool4/empty.o
14 | $(UNIT)-objs += ../../../src/mod/nat64/pool4/rfc6056.o
15 | $(UNIT)-objs += ../impersonator/route.o
16 | $(UNIT)-objs += iterations.o
17 |
18 | EXTRA_CFLAGS += -DDEBUG -DUNIT_TESTING
19 | ccflags-y := -I$(src)/../../../src -I$(src)/..
20 |
21 | all:
22 | make -C ${KERNEL_DIR} M=$$PWD;
23 | modules:
24 | make -C ${KERNEL_DIR} M=$$PWD $@;
25 | clean:
26 | make -C ${KERNEL_DIR} M=$$PWD $@;
27 |
28 |
--------------------------------------------------------------------------------
/test/unit/rbtree/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 |
4 | UNIT = rbtree
5 |
6 | obj-m += $(UNIT).o
7 |
8 | $(UNIT)-objs += ../../../src/common/types.o
9 | $(UNIT)-objs += ../../../src/mod/common/types.o
10 | $(UNIT)-objs += ../../../src/mod/common/address.o
11 | $(UNIT)-objs += ../framework/unit_test.o
12 | $(UNIT)-objs += rbtree_test.o
13 | $(UNIT)-objs += ../../../src/mod/common/db/rbtree.o
14 |
15 | EXTRA_CFLAGS += -DDEBUG -DUNIT_TESTING
16 | ccflags-y := -I$(src)/../../../src -I$(src)/..
17 |
18 | all:
19 | make -C ${KERNEL_DIR} M=$$PWD;
20 | modules:
21 | make -C ${KERNEL_DIR} M=$$PWD $@;
22 | clean:
23 | make -C ${KERNEL_DIR} M=$$PWD $@;
24 | test:
25 | sudo dmesg -C
26 | -sudo insmod $(UNIT).ko && sudo rmmod $(UNIT)
27 | sudo dmesg -tc | less
28 |
--------------------------------------------------------------------------------
/test/unit/rfc6052/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 |
4 | UNIT = rfc6052
5 |
6 | obj-m += $(UNIT).o
7 |
8 | $(UNIT)-objs += ../../../src/common/types.o
9 | $(UNIT)-objs += ../../../src/mod/common/types.o
10 | $(UNIT)-objs += ../../../src/mod/common/address.o
11 | $(UNIT)-objs += ../framework/unit_test.o
12 | $(UNIT)-objs += rfc6052_test.o
13 |
14 | EXTRA_CFLAGS += -DDEBUG -DUNIT_TESTING
15 | ccflags-y := -I$(src)/../../../src -I$(src)/..
16 |
17 | all:
18 | make -C ${KERNEL_DIR} M=$$PWD;
19 | modules:
20 | make -C ${KERNEL_DIR} M=$$PWD $@;
21 | clean:
22 | make -C ${KERNEL_DIR} M=$$PWD $@;
23 | test:
24 | sudo dmesg -C
25 | -sudo insmod $(UNIT).ko && sudo rmmod $(UNIT)
26 | sudo dmesg -tc | less
27 |
--------------------------------------------------------------------------------
/test/unit/test.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | if [ -z $1 ]; then
4 | TESTS=`ls -r */*.ko`
5 | else
6 | TESTS=$1/$1.ko
7 | fi
8 | COUNT=0
9 |
10 | sudo dmesg -C
11 |
12 | for i in $TESTS
13 | do
14 | echo "Running test '$i'."
15 | sudo insmod $i && sudo rmmod $i
16 | clear
17 | # The reason why we're asking the user to q in every test is because
18 | # a kernel crash could have gone undetected. The idea is that the user
19 | # would see the massive kernel dump in the output.
20 | # But the kernel surely exports a means to query wether it has panicked.
21 | # TODO Figure it out and properly automate this.
22 | sudo dmesg -ct | less
23 | COUNT=$((COUNT+1))
24 | done
25 |
26 | echo "Ran $COUNT modules."
27 |
--------------------------------------------------------------------------------
/test/unit/types/Makefile:
--------------------------------------------------------------------------------
1 | MODULES_DIR ?= /lib/modules/$(shell uname -r)
2 | KERNEL_DIR ?= ${MODULES_DIR}/build
3 |
4 | UNIT = types
5 |
6 | obj-m += $(UNIT).o
7 |
8 | $(UNIT)-objs += ../../../src/common/types.o
9 | $(UNIT)-objs += ../../../src/mod/common/types.o
10 | $(UNIT)-objs += ../../../src/mod/common/address.o
11 | $(UNIT)-objs += ../framework/unit_test.o
12 | $(UNIT)-objs += types_test.o
13 |
14 | EXTRA_CFLAGS += -DDEBUG -DUNIT_TESTING
15 | ccflags-y := -I$(src)/../../../src -I$(src)/..
16 |
17 | all:
18 | make -C ${KERNEL_DIR} M=$$PWD;
19 | modules:
20 | make -C ${KERNEL_DIR} M=$$PWD $@;
21 | clean:
22 | make -C ${KERNEL_DIR} M=$$PWD $@;
23 | test:
24 | sudo dmesg -C
25 | -sudo insmod $(UNIT).ko && sudo rmmod $(UNIT)
26 | sudo dmesg -tc | less
27 |
--------------------------------------------------------------------------------