├── .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 | --------------------------------------------------------------------------------