diff --git a/doc/.gitignore b/doc/.gitignore index fcc7356..a5c7734 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -7,3 +7,6 @@ plan.tex *.lot *.out *.toc +Thesis.bbl +Thesis.blg +Thesis.blg diff --git a/doc/Abstract.tex b/doc/Abstract.tex index aed9382..8c01506 100644 --- a/doc/Abstract.tex +++ b/doc/Abstract.tex @@ -1,21 +1,20 @@ -%**************************************************************************** -%** Copyright 2002 by Lukas Ruf, ruf@topsy.net -%** Information is provided under the terms of the -%** GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html -%** Fairness: Cite the source of information, visit http://www.topsy.net -%**************************************************************************** -%** Last Modification: 2005-07-11 1600 -%** 2005-07-11 Bernhard Tellenbach -%** Inserted new content -%**************************************************************************** \clearpage \null \vfil % or it might be \null \thispagestyle{plain} + +%** Abstract.tex: Contains a brief description +% of what the reader may expect + \begin{center}\textbf{Abstract}\end{center} - - -In journal articles, research papers, published patent applications and patents, an abstract is a short summary placed prior to the introduction, often with different line justification (blockquote) from the rest of the article, used to help readers determine the purpose of the paper. While the length of the abstract varies by field of study, it is typically a paragraph in length (3-5 sentences), and never more than a page. See -\url{en.wikipedia.org/wiki/Abstract(summary)} for details +Due to the lack of IPv4 addresses, IPv6 deployements have recently +gained in importance in the Internet. However even IPv6 only network +deployments usually need connectivity towards the legacy IP (IPv4) +networks. To allow legacy IP and IPv6 devices to communicate with each +other a transition mechanism named ``NAT64'' is usually +deployed. However NAT64 solutions in software often don't reach line +rate. Programmable switches offer a possibility to implement NAT64 in +the network. This master thesis shows the design, feasibility and +scalability of NAT64 on programmable switches. \vfil \clearpage diff --git a/doc/Design.tex b/doc/Design.tex index 0f48890..a2f42f6 100644 --- a/doc/Design.tex +++ b/doc/Design.tex @@ -1,2 +1,6 @@ -\chapter{\label{design}Title} -Description of the theory/software/hardware that you designed. \ No newline at end of file +\chapter{\label{design}Design} +Description of the theory/software/hardware that you designed. +%** Design.tex: How was the problem attacked, what was the design +% the architecture + +Maybe figures here? diff --git a/doc/Introduction.tex b/doc/Introduction.tex index 86eef5a..0ec98b2 100644 --- a/doc/Introduction.tex +++ b/doc/Introduction.tex @@ -1,29 +1,46 @@ -%**************************************************************************** -%** Copyright 2002 by Lukas Ruf, ruf@topsy.net -%** Information is provided under the terms of the -%** GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html -%** Fairness: Cite the source of information, visit http://www.topsy.net -%**************************************************************************** +%** Introduction.tex: Contains an introduction to +% the topic and motivates the work. +% State what the reader can find where. -%Example structure for an introduction -%**************************************************************************** -%** Copyright 2002, 2003 by Lukas Ruf, -%** Information is provided under the terms of the -%** GNU Free Documentation License -%** Fairness: Cite the source of information, visit -%**************************************************************************** \chapter{\label{introduction}Introduction} +IPv6 P4 + Introduce the related research field/the project. \section{\label{introduction:motivation}Motivation} +IPv6 deployments grow +Make it easier +take away burden + +In theory line speed - what is reality? + The motivation to write this thesis was... \section{\label{introduction:taskdescription}The Task} + +P4 environment +a lot of potential +Programming language in the network +Not only faster, but also more convienient. + +**** High speed NAT64 with P4 + Currently there are two main open source NAT64 solution available: + tayga and jool. The former is a single threaded, cpu bound user + space solution, the latter a custom Linux kernel module. + + This thesis challenges this status quo by developing a P4 based + solution supporting all features of jool/tayga and comparing the + performance, security and adaptivity of the solutions. + + - Milestone 1: Stateless NAT64/NAT46 translations in P4 + - Milestone 2: Stateful (dynamic) NAT64/NAT46 translations + - Milestone 3: Hardware adaption + Describe your task. -\section{\label{introduction:relatedwork}Related Work} +\section{\label{introduction:relatedwork}Related Work} A relevant work was~\cite{Lamport:LaTeX} (this citation is just an example...) \section{\label{introduction:overview}Overview} -Chapter 2 describes... Chapter 3 presents... \ No newline at end of file +Chapter 2 describes... Chapter 3 presents... diff --git a/doc/Originalproblem.tex b/doc/Originalproblem.tex index f59ec63..c46b080 100644 --- a/doc/Originalproblem.tex +++ b/doc/Originalproblem.tex @@ -1,2 +1,6 @@ -\chapter{\label{originalproblem}Title} -Here comes the original task description that you agreed on with your supervisor/tutor. \ No newline at end of file +\chapter{\label{originalproblem}Original Problem} + +Here comes the original task description that you agreed on with your +supervisor/tutor. + +-> stuff from mystudies diff --git a/doc/Outlook.tex b/doc/Outlook.tex index 46ee39f..e0a17cd 100644 --- a/doc/Outlook.tex +++ b/doc/Outlook.tex @@ -1,2 +1,7 @@ -\chapter{\label{outlook}Title} -What are the consequences of your work for future work? \ No newline at end of file +\chapter{\label{outlook}Outlook} + +%** Outlook.tex: What needs to be done further, what is planed +% +What are the consequences of your work for future work? + +Different HW diff --git a/doc/Problem.tex b/doc/Problem.tex index 76d1ff9..879047b 100644 --- a/doc/Problem.tex +++ b/doc/Problem.tex @@ -1,27 +1,18 @@ -%**************************************************************************** -%** Copyright 2002 by Lukas Ruf, ruf@topsy.net -%** Information is provided under the terms of the -%** GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html -%** Fairness: Cite the source of information, visit http://www.topsy.net -%**************************************************************************** -%**************************************************************************** -%** Last Modification: 2005-07-11 1600 -%** 2005-07-11 Bernhard Tellenbach -%** This is an addapted version of the Introduction.tex file -%** Added table example (footnotes,multicolumn) -%** Examples for different text sizes -%** Updated eps file inclusion example for use with graphicx pkt. -%**************************************************************************** +\chapter{\label{chapter2}Problem / latex samples} +%** Problem.tex: Documentation in own words of the problem to +% be addressed in this document: +% What is the challenge, why is it useful what you +% plan to do. -\chapter{\label{chapter2}Title} -In \ref{introduction} we start with our introduction to the problem that we -are going to address. Since we do not want to waste the readers time we + +In \ref{introduction} we start with our introduction to the problem that we +are going to address. Since we do not want to waste the readers time we go and show the essential issues of latex in section \ref{chapter2:essentials}. \section{\label{chapter2:essentials}Essentials} -Well this section can be further subdivided into subsection. We present +Well this section can be further subdivided into subsection. We present this in subsection \ref{chapter2:essentials:subsections}. \subsection{\label{chapter2:essentials:subsections}Subsections} @@ -99,4 +90,3 @@ Of some interest is also the landscape environment: \verbatiminput{filename.txt} Even though we don't think full listings are useful in documents, you can easily insert complete files by the verbatiminput{}-command. - diff --git a/doc/Results.tex b/doc/Results.tex index f525fcb..20a11f9 100644 --- a/doc/Results.tex +++ b/doc/Results.tex @@ -1,2 +1,12 @@ -\chapter{\label{results}Title} -The results from your evaluations. \ No newline at end of file +\chapter{\label{results}Results} +%** Results.tex: What were the results achieved including an evaluation +% + +The results from your evaluations. + +\begin{itemize} +\item Solution in P4/BMV2 +\item Solution in P4/NetFPGA +\end{itemize} + +Many workarounds diff --git a/doc/Summary.tex b/doc/Summary.tex index af68fde..78f1c7a 100644 --- a/doc/Summary.tex +++ b/doc/Summary.tex @@ -1,3 +1,6 @@ -\chapter{\label{summary}Title} -Sum up what you have done and recapitulate your key findings. +\chapter{\label{summary}Summary} +%** Summary.tex: What have you achieved, what have you presented in this +% document. What are the highlights of your work. +% It should conclude by a conclusion. +Sum up what you have done and recapitulate your key findings. diff --git a/doc/Thesis.tex b/doc/Thesis.tex index 9149a21..4592c61 100644 --- a/doc/Thesis.tex +++ b/doc/Thesis.tex @@ -1,25 +1,4 @@ -%%**************************************************************************** -%** Copyright 2002, 2003 by Lukas Ruf, -%** Information is provided under the terms of the -%** GNU Free Documentation License -%** Fairness: Cite the source of information, visit -%**************************************************************************** -%** Last Modification: 2013-07-31 -%** 2005-07-11 Bernhard Tellenbach -%** Switched default document class to: book -%** Added \include{appendix.tex} -%** 2013-07-31 David Gugelmann (gugdavid) -%** Use bibtex for references -%** Added new watermark command -%**************************************************************************** - - - \documentclass[10pt,final,a4paper,twoside]{book} -%\documentclass[10pt,draft,a4paper,oneside]{report} -%\documentclass[10pt,draft,a4paper,oneside]{article} - -%**Latex Master Document********* \newcommand{\watermark}{DRAFT} % a watermark is included on all pages if \watermark is defined here @@ -43,69 +22,29 @@ %**Documentation**************** -%** Abstract.tex: Contains a brief description -% of what the reader may expect \include{Abstract} -%** Table of Contents \tableofcontents - -%** Table of Figures \listoffigures - -%** Table of Figures \listoftables -%** Introduction.tex: Contains an introduction to -% the topic and motivates the work. -% State what the reader can find where. \include{Introduction} - -%** Problem.tex: Documentation in own words of the problem to -% be addressed in this document: -% What is the challenge, why is it useful what you -% plan to do. \include{Problem} - -%** Design.tex: How was the problem attacked, what was the design -% the architecture \include{Design} - -%** Results.tex: What were the results achieved including an evaluation -% \include{Results} - -%** Outlook.tex: What needs to be done further, what is planed -% \include{Outlook} - -%** Summary.tex: What have you achieved, what have you presented in this -% document. What are the highlights of your work. -% It should conclude by a conclusion. \include{Summary} -%** Switch to appendix-mode in Latex. -% \appendix - -%** I would like to have the appendices enumerated by Alphabetical -% characters. \renewcommand{\thepart}{\Alph{part}} %** appendix.tex: Install instructions, configurations, test results, % simulation data, additional theoretical disquisitions, ... % \include{appendix} - -%** Timetable.tex: Timetable you worked out. -% \include{Timetable} - -%** Originalproblem.tex: The problem statement you received. -% \include{Originalproblem} - %** bibtex is used to automatically generate the bibliography % references are stored in refs/refs.bib % use a bibliography manager like JabRef (http://jabref.sourceforge.net/) to manage refs/refs.bib diff --git a/doc/Timetable.tex b/doc/Timetable.tex index c3438a6..8d70765 100644 --- a/doc/Timetable.tex +++ b/doc/Timetable.tex @@ -1,2 +1,3 @@ -\chapter{\label{timetable}Title} -Here may come your thesis schedule (the original plan and ev. the actual outcome). \ No newline at end of file +\chapter{\label{timetable}Timetable (?)} +Here may come your thesis schedule (the original plan and ev. the actual outcome). +-> can be from plan.org diff --git a/doc/Title.tex b/doc/Title.tex index e72be64..ca40dc3 100644 --- a/doc/Title.tex +++ b/doc/Title.tex @@ -1,20 +1,3 @@ - %**************************************************************************** - %** Copyright 2002 by Lukas Ruf, ruf@topsy.net - %** Information is provided under the terms of the - %** GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html - %** Fairness: Cite the source of information, visit http://www.topsy.net - %**************************************************************************** - %** Extensions: - %** January 2003: Thomas Duebendorfer - %** changed the former ETH Header to the new, official one that is - %** mandatory since January 2003. - %**************************************************************************** - %**************************************************************************** - %** Extensions: - %** January 2005: Bernhard Tellenbach - %** changed the way the ETH Header is included. Slight modification of the - %** content. - %**************************************************************************** \begin{titlepage} \begin{center} @@ -25,20 +8,19 @@ \vspace{2 cm} - {\large FirstName Name} + {\large Nico Schottelius} \vspace{2 cm} - {\Huge Thesis Title}\\ + {\Huge High speed NAT64 with P4}\\ \vspace{\fill} - (Master/Semester) Thesis (MA/SA)-20XX-XX\\ - July 2005 to January 2006\\ + Master Thesis MA-2019S\\ + February 2019 to August 2019\\ \vspace{1cm} - Tutor: \\ - Co-Tutor: \\ - Supervisor: \\ - + Tutors: Alexander Dietmüller, Edgar Costa Molero\\ + Supervisor: Prof. Dr. Laurent Vanbever\\ + \end{titlepage} diff --git a/doc/appendix.tex b/doc/appendix.tex index 5097bfe..56afab9 100644 --- a/doc/appendix.tex +++ b/doc/appendix.tex @@ -1,14 +1,4 @@ -%%**************************************************************************** -%** Copyright 2005 by Bernhard Tellenbach, -%** Information is provided under the terms of the -%** GNU Free Documentation License -%**************************************************************************** -%**************************************************************************** -%** Last Modification: 2005-07-11 1600 -%** 2005-07-11 Updated the syntax to match the current nomencl packet -%**************************************************************************** - -\chapter{\label{appendixA}Title} +\chapter{\label{appendixA}Appendix A should have a title} \section{\label{chapterA:section1}Section 1} @@ -20,7 +10,7 @@ Page boundaries are not checked................................................. \end{verbatim} -\chapter{\label{appendixB}Title} +\chapter{\label{appendixB}Appendix B?} %Entries for the list of abbrevations: @@ -38,5 +28,3 @@ Page boundaries are not checked................................................. \printnomenclature \abbrev{XCA}{\markup{X}tremely \markup{C}ool \markup{A}bbrevations} - - diff --git a/doc/plan.org b/doc/plan.org index 4f400c7..65bdb12 100644 --- a/doc/plan.org +++ b/doc/plan.org @@ -7267,7 +7267,8 @@ success *** DONE 2019-07-28: ping6 test for getting packet: failure CLOSED: [2019-07-28 Sun 12:43] -*** TODO 2019-07-28: !!!!!!! NETPFGA PORT MAPPINGS +*** DONE 2019-07-28: !!!!!!! NETPFGA PORT MAPPINGS + CLOSED: [2019-07-29 Mon 18:35] nf_port_map = { "nf0":0b00000001, "nf1":0b00000100, @@ -7309,7 +7310,8 @@ success #+END_CENTER -*** TODO 2019-07-28: and another bug in the table code: invalid literal for int() with base 0: +*** DONE 2019-07-28: and another bug in the table code: invalid literal for int() with base 0: + CLOSED: [2019-07-29 Mon 18:35] #+BEGIN_CENTER >> table_cam_delete_entry realmain_v6_networks_0 42540766411362381960998550477184434180 @@ -7387,7 +7389,8 @@ success #+END_CENTER -*** TODO 2019-07-28: test with 6.8: very bare / only v4/v6 egress +*** DONE 2019-07-28: test with 6.8: very bare / only v4/v6 egress + CLOSED: [2019-07-29 Mon 18:35] - Expected: 1 -> nsg, 16 -> enp2s0f0, 64 -> enp2s0f1 - Actual@ no packet seen @@ -7408,7 +7411,8 @@ nico@ESPRIMO-P956:~$ #+END_CENTER -*** TODO 2019-07-28: test ipv4 with 6.8 +*** DONE 2019-07-28: test ipv4 with 6.8 + CLOSED: [2019-07-29 Mon 18:35] #+BEGIN_CENTER nico@ESPRIMO-P956:~/master-thesis/netpfga$ sudo ip neigh del 10.0.0.1 dev enp2s0f0 nico@ESPRIMO-P956:~/master-thesis/netpfga$ sudo ip neigh add 10.0.0.1 dev enp2s0f0 lladdr f8:f2:1e:41:44:9c @@ -7753,7 +7757,6 @@ nico@nsg-System:~$ CLOSED: [2019-07-28 Sun 19:37] - *** DONE 2019-07-28: direct loading works / no 2nd reboot necessary CLOSED: [2019-07-28 Sun 19:50] #+BEGIN_CENTER @@ -7811,7 +7814,8 @@ nico@nsg-System:~/master-thesis$ #+END_CENTER -*** TODO 2019-07-28: v4_networks only test [v6.9]: set_egress_port(4) => does not exit anywhere; table for port1 does not work? +*** DONE 2019-07-28: v4_networks only test [v6.9]: set_egress_port(4) => does not exit anywhere; table for port1 does not work? + CLOSED: [2019-07-29 Mon 18:35] #+BEGIN_CENTER >> list_cam_tables ---------------------- @@ -7979,7 +7983,8 @@ nico@ESPRIMO-P956:~/master-thesis/bin$ for i in $(seq 1 64); do (ping -c1 10.0.0 #+END_CENTER -*** TODO 2019-07-29: v7.0: ping6 seen on eth1 of nsg -> port 1 == itself -> everything to p1 +*** DONE 2019-07-29: v7.0: ping6 seen on eth1 of nsg -> port 1 == itself -> everything to p1 + CLOSED: [2019-07-29 Mon 18:35] #+BEGIN_CENTER ⚡ root  root tcpdump -ni1eth1 tcpdump: verboseoutput suppressed, use -v or -vv for full protocol decode @@ -7993,7 +7998,8 @@ listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes #+END_CENTER -*** TODO 2019-07-29: after recompiling with default = 16, icmp4 seen on eth1 of nsg +*** DONE 2019-07-29: after recompiling with default = 16, icmp4 seen on eth1 of nsg + CLOSED: [2019-07-29 Mon 18:35] eth1@nsg: #+BEGIN_CENTER @@ -8011,11 +8017,13 @@ eth1@nsg: reflashing switch -*** TODO 2019-07-29: try to set egress to anything that is not 1 +*** DONE 2019-07-29: try to set egress to anything that is not 1 + CLOSED: [2019-07-29 Mon 18:35] - ..hardcoded: sets to 4 (default) 16 (natted v4->v6) 64 (natted v6->v4) - ... dummy: 1 for arp, 1 for v4, 16 for v6 -*** TODO 2019-07-29: fix precedence +*** DONE 2019-07-29: fix precedence + CLOSED: [2019-07-29 Mon 18:35] #+BEGIN_CENTER make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src' p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4 @@ -8028,7 +8036,8 @@ netpfga_dummy.p4(20): warning: >>: shifting value with 8 bits by 11 netpfga_dummy.p4(20): warning: >>: shifting value with 8 bits by 11 sume_metadata.dst_port = (bit<8>) hdr.ethernet.ethertype >> 11; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -*** TODO 2019-07-29: set egress based on v4/v6 header: v7.1 +*** DONE 2019-07-29: set egress based on v4/v6 header: v7.1 + CLOSED: [2019-07-29 Mon 18:35] **** ipv4: no output anywhere (only sent package seen) **** ipv6: no output anywhere (only sent package seen) **** arp: no output anywhere (only sent package seen) @@ -8049,8 +8058,9 @@ listening on enp2s0f1, link-type EN10MB (Ethernet), capture size 262144 bytes 16:20:39.686165 ARP, Request who-has 10.0.0.250 tell 10.0.0.200, length 28 #+END_CENTER -**** 2019-07-29: found bug in PARSER!!!! - +**** DONE 2019-07-29: found bug in PARSER!!!! + CLOSED: [2019-07-29 Mon 18:34] +*** 2019-07-29: documentation: `portland.sty' not found ** The NetPFGA saga Problems encountered: - The logfile for a compile run is 10k+ lines diff --git a/doc/preamble.tex b/doc/preamble.tex index 5b9c683..f5249a0 100644 --- a/doc/preamble.tex +++ b/doc/preamble.tex @@ -1,39 +1,10 @@ -%**************************************************************************** -%** Copyright 2001, 2002, 2003, 2004 by Lukas Ruf, -%** Information is provided under the terms of the -%** GNU Free Documentation License -%** Fairness: Cite the source of information, visit -%**************************************************************************** -%** Last Modification: 2013-07-31 -%** 2004-02-17: Lukas Ruf -%** Added recommendation by Thomas Duebendorfer -%** Added different babel languages -%** Added more comments -%** 2004-10-16: Lukas Ruf -%** More comments -%** Added subfigure -%** 2005-07-11 Bernhard Tellenbach -%** Added \abbrev command to generate a list of abbrevations -%** Removed support for psfig and epsfig (old) -%** Adapted syntax for new nomencl packet version -%** 2013-07-31 David Gugelmann (gugdavid) -%** Adapted for pdflatex -%** Added hyperref -%** Style of headers modified, adapted watermark command -%**************************************************************************** - \RequirePackage{times} \usepackage[english]{babel} -%-% \usepackage[german]{babel} -%-% \usepackage[ngerman]{babel} - \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{type1cm} - \usepackage{a4} - \usepackage{hyperref} \hypersetup{colorlinks,% citecolor=black,% @@ -55,7 +26,7 @@ \usepackage{longtable} \usepackage{paralist} \usepackage{url} -\usepackage{portland} +%\usepackage{portland} \usepackage{lscape} \usepackage{moreverb} @@ -66,13 +37,13 @@ \renewcommand{\nomlabel}[1]{#1 \dotfill} \setlength{\nomitemsep}{-\parsep} %For old nomencl package, uncomment this: - \makeglossary + \makeglossary %For new nomencl package, uncomment this: %\makenomenclature \usepackage[normalem]{ulem} \newcommand{\markup}[1]{\uline{#1}} - + %% Thanks to Thomas Duebendorfer: Should create smoother fonts \usepackage{ae,aecompl}