diff --git a/doc/HIGH SPEED NAT64 WITH P4.pdf b/doc/HIGH SPEED NAT64 WITH P4.pdf
new file mode 100644
index 0000000..439ebb3
Binary files /dev/null and b/doc/HIGH SPEED NAT64 WITH P4.pdf differ
diff --git a/doc/Makefile b/doc/Makefile
index 47b8d1e..6251f32 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 04c69cf..2301536 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 0000000..7c473dc
--- /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 0000000..1a2c3c8
--- /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 0000000..ec0204b
--- /dev/null
+++ b/doc/graphviz/dualstack.svg
@@ -0,0 +1,85 @@
+
+
+
+
+
diff --git a/doc/graphviz/icmp6ndp.dot b/doc/graphviz/icmp6ndp.dot
index dd06073..8b8f737 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 0000000..2fe2a2e
--- /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 0000000..f5464c8
--- /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 0000000..cb4e887
--- /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 0000000..3c19150
--- /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 0000000..f1c8673
--- /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 2469f37..686c5c1 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 0000000..fdf41e3
--- /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 0000000..0bf1eaa
--- /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 0000000..3066804
--- /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 0000000..c356e34
--- /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 0000000..f269fd9
--- /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 0000000..3e561af
--- /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 0000000..c048004
--- /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 e7904fb..5cc5d44 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 0000000..50a82f5
--- /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 0000000..44aaed8
--- /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 ccd899a..2b985af 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 0000000..3110129
--- /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 0000000..db19f40
--- /dev/null
+++ b/doc/graphviz/v6only.svg
@@ -0,0 +1,85 @@
+
+
+
+
+