diff --git a/doc/HIGH SPEED NAT64 WITH P4.pdf b/doc/HIGH SPEED NAT64 WITH P4.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..439ebb3498eeddbde6bc4c5e619d66d42fc6efaa
Binary files /dev/null and b/doc/HIGH SPEED NAT64 WITH P4.pdf differ
diff --git a/doc/Makefile b/doc/Makefile
index 47b8d1e246ac8855a52b47f9d32f9b68f13f39f5..6251f326d64b76c12206308308201b249741e51d 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -15,9 +15,13 @@ clean:
all-graphviz:
for dot in graphviz/*.dot; do make $${dot%%.dot}.png; done
for dot in graphviz/*.dot; do make $${dot%%.dot}.pdf; done
+ for dot in graphviz/*.dot; do make $${dot%%.dot}.svg; done
graphviz/%.png: graphviz/%.dot
dot -Tpng < $< > $@
graphviz/%.pdf: graphviz/%.dot
dot -Tpdf < $< > $@
+
+graphviz/%.svg: graphviz/%.dot
+ dot -Tsvg < $< > $@
diff --git a/doc/Thesis.pdf b/doc/Thesis.pdf
index 04c69cf2f7e44bfefa46955cb6168011dfb64533..230153616fb3ccbb71d215fd23b4edf59dce63c4 100644
Binary files a/doc/Thesis.pdf and b/doc/Thesis.pdf differ
diff --git a/doc/graphviz/arp-ndp.svg b/doc/graphviz/arp-ndp.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7c473dcc87e9e9d46c8064b724c5df866d930993
--- /dev/null
+++ b/doc/graphviz/arp-ndp.svg
@@ -0,0 +1,73 @@
+
+
+
+
+
diff --git a/doc/graphviz/dns64.svg b/doc/graphviz/dns64.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1a2c3c88c8691400e55978704c55548d7c3c6029
--- /dev/null
+++ b/doc/graphviz/dns64.svg
@@ -0,0 +1,118 @@
+
+
+
+
+
diff --git a/doc/graphviz/dualstack.svg b/doc/graphviz/dualstack.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ec0204be6250756061e42e2e51fc6c583c259d3a
--- /dev/null
+++ b/doc/graphviz/dualstack.svg
@@ -0,0 +1,85 @@
+
+
+
+
+
diff --git a/doc/graphviz/icmp6ndp.dot b/doc/graphviz/icmp6ndp.dot
index dd06073442bf2cd413fc07011cfa1f9eaaaeac8d..8b8f7376bfa550bd49ffa5f51a44858d8240d848 100644
--- a/doc/graphviz/icmp6ndp.dot
+++ b/doc/graphviz/icmp6ndp.dot
@@ -6,7 +6,7 @@ digraph G {
ipv6 [ label="IPv6" ]
icmp6 [ label="ICMP6" ]
- icmp6ns [ label="ICMP6 Neigbor Advertisement" ]
+ icmp6ns [ label="ICMP6 Neighbor Advertisement" ]
icmp6nsll [ label="ICMP6 Link layer option" ]
icmp6other [ label="Option field 1" ]
icmp6other2 [ label="Option field 2" ]
diff --git a/doc/graphviz/icmp6ndp.svg b/doc/graphviz/icmp6ndp.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2fe2a2e2cc80da17bf08be0539a54d4db5b891d8
--- /dev/null
+++ b/doc/graphviz/icmp6ndp.svg
@@ -0,0 +1,91 @@
+
+
+
+
+
diff --git a/doc/graphviz/nat64-two-directions.dot b/doc/graphviz/nat64-two-directions.dot
new file mode 100644
index 0000000000000000000000000000000000000000..f5464c8830ed3d96470de4c92b09e8ffaadb773d
--- /dev/null
+++ b/doc/graphviz/nat64-two-directions.dot
@@ -0,0 +1,18 @@
+digraph G {
+ size="10!";
+ rankdir="LR";
+
+
+ node [ shape="box"];
+
+ v4host1 [ label="IPv4 only host" color="yellow" ];
+ v6host2 [ label="IPv6 only host" color="blue" ];
+
+ v6host1 [ label="IPv6 only host" color="blue" ];
+ v4internet [ label="The whole IPv4 Internet" color="yellow" ];
+
+
+
+ v6host1->v4internet [ label="2001:db8:cafe::/96" ];
+ v4host1->v6host2 [ label="TCP:192.0.1.1:2342" ];
+}
diff --git a/doc/graphviz/nat64-two-directions.svg b/doc/graphviz/nat64-two-directions.svg
new file mode 100644
index 0000000000000000000000000000000000000000..cb4e887c02272c01c5685357c4eee2effaddc32d
--- /dev/null
+++ b/doc/graphviz/nat64-two-directions.svg
@@ -0,0 +1,51 @@
+
+
+
+
+
diff --git a/doc/graphviz/netpfgadesign.svg b/doc/graphviz/netpfgadesign.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3c191500ed5a30ac1cec6149fc3cd0c04cdca75b
--- /dev/null
+++ b/doc/graphviz/netpfgadesign.svg
@@ -0,0 +1,74 @@
+
+
+
+
+
diff --git a/doc/graphviz/networkdesignnat64.svg b/doc/graphviz/networkdesignnat64.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f1c8673459373699ebd09828eb2118d586ba6c9e
--- /dev/null
+++ b/doc/graphviz/networkdesignnat64.svg
@@ -0,0 +1,45 @@
+
+
+
+
+
diff --git a/doc/graphviz/p4switch-stateful.dot b/doc/graphviz/p4switch-stateful.dot
index 2469f37765c203c6c51d3be037bf5a3f1f891e99..686c5c1079c365beab802ab5a9c5537ccd6d7718 100644
--- a/doc/graphviz/p4switch-stateful.dot
+++ b/doc/graphviz/p4switch-stateful.dot
@@ -1,5 +1,7 @@
digraph G {
rankdir="TB";
+ size="10!";
+
v4host [ shape="box" label="IPv4 Host" ];
v6host [ shape="box" label="IPv6 Host" ];
diff --git a/doc/graphviz/p4switch-stateful.svg b/doc/graphviz/p4switch-stateful.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fdf41e32fcc2968236afe971274aa4a65a5153ce
--- /dev/null
+++ b/doc/graphviz/p4switch-stateful.svg
@@ -0,0 +1,193 @@
+
+
+
+
+
diff --git a/doc/graphviz/p4switch.svg b/doc/graphviz/p4switch.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0bf1eaaef8366ae5040843755ea56f0ed508df49
--- /dev/null
+++ b/doc/graphviz/p4switch.svg
@@ -0,0 +1,96 @@
+
+
+
+
+
diff --git a/doc/graphviz/softwarenat64design.svg b/doc/graphviz/softwarenat64design.svg
new file mode 100644
index 0000000000000000000000000000000000000000..30668048cabb88b67f38c027774f386e568d22f8
--- /dev/null
+++ b/doc/graphviz/softwarenat64design.svg
@@ -0,0 +1,57 @@
+
+
+
+
+
diff --git a/doc/graphviz/statefulnat64.svg b/doc/graphviz/statefulnat64.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c356e348ddcc16b29cb9a4d5febecc174bbd6dae
--- /dev/null
+++ b/doc/graphviz/statefulnat64.svg
@@ -0,0 +1,52 @@
+
+
+
+
+
diff --git a/doc/graphviz/switchdesign.svg b/doc/graphviz/switchdesign.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f269fd9baef6edc2c56d8b7922d5623117ad02f6
--- /dev/null
+++ b/doc/graphviz/switchdesign.svg
@@ -0,0 +1,53 @@
+
+
+
+
+
diff --git a/doc/graphviz/v4only.svg b/doc/graphviz/v4only.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3e561af030fdbf5f4b292bd9029017e87005f83c
--- /dev/null
+++ b/doc/graphviz/v4only.svg
@@ -0,0 +1,85 @@
+
+
+
+
+
diff --git a/doc/graphviz/v6-v4-innetwork.svg b/doc/graphviz/v6-v4-innetwork.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c048004e51ed56c672a57be5bea30c4b476002ab
--- /dev/null
+++ b/doc/graphviz/v6-v4-innetwork.svg
@@ -0,0 +1,41 @@
+
+
+
+
+
diff --git a/doc/graphviz/v6-v4-mixed.dot b/doc/graphviz/v6-v4-mixed.dot
index e7904fbbe2f3ad444230676c345e6737f822a922..5cc5d44f193427eee370afbc1a837cd41b16e2d5 100644
--- a/doc/graphviz/v6-v4-mixed.dot
+++ b/doc/graphviz/v6-v4-mixed.dot
@@ -3,12 +3,12 @@ graph G {
rankdir="LR";
- v6host12 [ label="IPv6 only host"];
- v6host22 [ label="IPv6 only host"];
- v6host32 [ label="IPv6 only host"];
- v4host12 [ label="IPv4 only host"];
- v4host22 [ label="IPv4 only host"];
- v4host32 [ label="IPv4 only host"];
+ v6host12 [ label="IPv6 only host" color="blue" ];
+ v6host22 [ label="IPv6 only host" color="blue" ];
+ v6host32 [ label="IPv6 only host" color="blue" ];
+ v4host12 [ label="IPv4 only host" color="yellow" ];
+ v4host22 [ label="IPv4 only host" color="yellow" ];
+ v4host32 [ label="IPv4 only host" color="yellow" ];
switchboth [ label="Network Switch with NAT64", shape="oval" ];
diff --git a/doc/graphviz/v6-v4-mixed.svg b/doc/graphviz/v6-v4-mixed.svg
new file mode 100644
index 0000000000000000000000000000000000000000..50a82f5547caf2fdf7cd1f8a4bdacab519851325
--- /dev/null
+++ b/doc/graphviz/v6-v4-mixed.svg
@@ -0,0 +1,85 @@
+
+
+
+
+
diff --git a/doc/graphviz/v6-v4-standard.svg b/doc/graphviz/v6-v4-standard.svg
new file mode 100644
index 0000000000000000000000000000000000000000..44aaed8b32b0e6375533493d67a481305d4f8697
--- /dev/null
+++ b/doc/graphviz/v6-v4-standard.svg
@@ -0,0 +1,85 @@
+
+
+
+
+
diff --git a/doc/graphviz/v6-v6-separated.dot b/doc/graphviz/v6-v6-separated.dot
index ccd899af8adf42e2889f9b04f3c41a67fe7b507d..2b985af3fc2d3a958a00f9f77de5fd4e2fd23657 100644
--- a/doc/graphviz/v6-v6-separated.dot
+++ b/doc/graphviz/v6-v6-separated.dot
@@ -2,13 +2,12 @@ graph G {
node [ shape="box"];
rankdir="LR";
- v6host1 [ label="IPv6 only host"];
- v6host2 [ label="IPv6 only host"];
- v6host3 [ label="IPv6 only host"];
-
- v4host1 [ label="IPv4 only host"];
- v4host2 [ label="IPv4 only host"];
- v4host3 [ label="IPv4 only host"];
+ v6host1 [ label="IPv6 only host" color="blue" ];
+ v6host2 [ label="IPv6 only host" color="blue" ];
+ v6host3 [ label="IPv6 only host" color="blue" ];
+ v4host1 [ label="IPv4 only host" color="yellow" ];
+ v4host2 [ label="IPv4 only host" color="yellow" ];
+ v4host3 [ label="IPv4 only host" color="yellow" ];
switchv6 [ label="Network Segment", shape="oval" ];
switchv4 [ label="Network Segment", shape="oval" ];
diff --git a/doc/graphviz/v6-v6-separated.svg b/doc/graphviz/v6-v6-separated.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3110129db7a852f220eaceefb41477c5f0ae4bc3
--- /dev/null
+++ b/doc/graphviz/v6-v6-separated.svg
@@ -0,0 +1,108 @@
+
+
+
+
+
diff --git a/doc/graphviz/v6only.svg b/doc/graphviz/v6only.svg
new file mode 100644
index 0000000000000000000000000000000000000000..db19f40225c6485abbb49507d09959706e0e041f
--- /dev/null
+++ b/doc/graphviz/v6only.svg
@@ -0,0 +1,85 @@
+
+
+
+
+