Update doc

This commit is contained in:
Nico Schottelius 2019-08-07 15:55:53 +02:00
parent 2d2ca29637
commit e19e8cc32a
18 changed files with 317 additions and 183 deletions

View File

@ -3,18 +3,39 @@
\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}
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.
gained in importance in the Internet.
Several transition mechanism exist that allow translating IPv6
packets into IPv4 packets, thus enabling the coexistence
and interoperability of both protocols.
This thesis describes an implementation of the transition mechanism
NAT64 implemented in P4. Using the P4 programming language
a software emulated switch was created that translates IPv4 to IPv6 and vice versa.
Due to the target independence of P4 the same code can be compiled
for and deployed to on the FPGA hardware platform ``NetFPGA''.
Within the NetFPGA the NAT64 implementation achieves a stable throughput of
9.29 Gigabit/s and allows in network translations without a router.
%% P4. P4 is protocol and target independent and allo
%% P4 is a protocol independent programming language that allows programming network
%% 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
\begin{verbatim}
***** Mehr was ich gemacht habe
***** 2-3 keys & numbers hinzufügen, 30% netpfga, 10gbit/s line rate
***** weniger das warum
\end{verbatim}

15
doc/Background.tex Normal file
View File

@ -0,0 +1,15 @@
\chapter{\label{background}Background}
\section{\label{background:P4}P4}
\section{\label{background:ipv6}IPv6}
***** Für IPv6, NAT64, transitation mechanism
***** RFC hinzufügen
***** P4 kurz erwähnen
growth
\section{\label{background:transition}Transition Mechanisms}
proxying
translations
\section{\label{background:ipv6}IPv6}

41
doc/Conclusion.tex Normal file
View File

@ -0,0 +1,41 @@
\chapter{\label{summary}Conclusion}
%** 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.
%\section{\label{conclusion:overall}Overall}
\section{\label{conclusion:bmv2}BMV2}
maybe remove
\section{\label{conclusion:P4}P4}
Many possibilities
Protocol independent
Easy architecture
Limitations in
\section{\label{conclusion:netpfga}NetFGPA}
personal note here
\section{\label{conclusion:realworld}Real world applications}
Can be deployed using the netpfga. Or Barefoot or Arista.
\section{\label{conclusion: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
Speed only limited to line speed. Could be running at 100 Gbit/s
without modifications.
\section{todo}
\begin{verbatim}
***** Summary eher kurz
***** Outlook als subsection!
\end{verbatim}

View File

@ -19,3 +19,12 @@ Netpfga live,
Vivado
SDNET
xx k lines of supporting code
\section{todo}
\begin{verbatim}
***** Verschiedene design Möglichkeiten
***** Proxy und co.
***** Generell vs. spefizisch
\end{verbatim}

View File

@ -39,8 +39,38 @@ Not only faster, but also more convienient.
Describe your task.
\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...
%** 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.
%% 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:linespeed}Line Speed NAT64}
NAT64 in software is CPU bound. Hardware can potentially do this at
line speed.
\section{\label{chapter2:transitition}Simplify IPv6 deployments}
Currently network operators have to focus on two network stacks when
designing networks: IPv6 and IPv4. As To simplify network setups
\section{todo}
\begin{verbatim}
***** Motivation zeigen
***** IPv6, NetPFGA mehr Möglichketien
***** P4 erwähnen
***** Task gut zu zeigen, alles erreicht
use cases / sample applications
\end{verbatim}

View File

@ -3,7 +3,7 @@ FILE = Thesis
all:
pdflatex $(FILE)
bibtex $(FILE)
# bibtex $(FILE)
pdflatex $(FILE)
pdflatex $(FILE)

View File

@ -1,6 +0,0 @@
\chapter{\label{originalproblem}Original Problem}
Here comes the original task description that you agreed on with your
supervisor/tutor.
-> stuff from mystudies

View File

@ -1,7 +0,0 @@
\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

View File

@ -1,99 +0,0 @@
\chapter{\label{chapter2}Problem}
%** 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.
%% 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:linespeed}Line Speed NAT64}
NAT64 in software is CPU bound. Hardware can potentially do this at
line speed.
\section{\label{chapter2:transitition}Simplify IPv6 deployments}
Currently network operators have to focus on two network stacks when
designing networks: IPv6 and IPv4. As To simplify network setups
%% Well this section can be further subdivided into subsection. We present
%% this in subsection \ref{chapter2:essentials:subsections}.
%% \subsection{\label{chapter2:essentials:subsections}Subsections}
%% \paragraph{\label{introduction:essentials:subsections:paragraph}Paragraphs}
%% can be specially referenced as well.
%% Of further importance is the understanding of the following environments:
%% %*** itemized lists
%% \begin{itemize}
%% \item This shows an itemized bullet list
%% \begin{itemize}
%% \item Which can be used for several levels\ldots
%% \end{itemize}
%% \end{itemize}
%% %*** enumerated lists
%% \begin{enumerate}
%% \item The same applies to enumerated lists.
%% \end{enumerate}
%% %** figures
%% \begin{figure}[!hbt]
%% \begin{center}
%% % \includegraphics[width=\textwidth, angle=90]{file_name.eps}
%% \caption{This is a figure to be printed in a float}
%% \label{file_name}
%% \end{center}
%% \end{figure}
%% By figure \ref{file_name}, we show some funny figures.
%% Table with caption and footnotes below the table.
%% \begin{table}[htbp]
%% \begin{center}\begin{minipage}{\textwidth}
%% \begin{tabular}{| c | p{130pt} | l |}
%% \hline
%% Column 1 & Column 2 \newline (additional line) & Column 3 \\
%% \hline
%% C1,R2 & C2,R2 & C2,R3 \\
%% \hline
%% C1,R3 & \multicolumn{2}{| c |}{C2\&C3,R3} \\
%% \hline
%% C1,R4 & C2,R4\footnote{Footnote to table~\ref{tab:table1}} & C3,R4\\
%% \hline
%% \end{tabular}
%% \end{minipage}
%% \caption{Table 1}
%% \label{tab:table1}
%% \end{center}
%% \end{table}
%% Examples of different text sizes:
%% \small Small \\
%% \scriptsize Script size \\
%% \normalsize Normal \\
%% \large Large \\
%% \huge Huge \\
%% \normalsize
%% \CHECK
%% If we reference to another document, we cite the document \cite{Lamport:LaTeX}.
%% %** landscape
%% \NEW
%% \begin{landscape}
%% Of some interest is also the landscape environment:
%% \end{landscape}
%% \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.

View File

@ -20,7 +20,11 @@ test framework openvswitch
\section{\label{Results:NetPFGA}NetFPGA}
General result: limited NAT64 is working, however
\subsection{\label{Results:NetPFGA:challenge-checksum}No Payload checksumming}
\subsection{\label{Results:NetPFGA:challenge-checksum}No Payload
checksumming}
Hash funktion in Arbeit
\subsection{\label{Results:NetPFGA:challenges}Other Challenges}
Many workarounds
@ -45,3 +49,11 @@ Reproducibility:
\section{\label{Results:P4}P4}
Limits if in actions
\section{todo}
\begin{verbatim}
***** Dorth eher detailiertes Drawing
***** Längste Section!
\end{verbatim}

View File

@ -1,10 +0,0 @@
\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.
\section{\label{summary:overall}Overall}
\section{\label{summary:bmv2}BMV2}
\section{\label{summary:netpfga}NetFGPA}

View File

@ -33,15 +33,14 @@
\include{Abstract}
\tableofcontents
\listoffigures
%\listoffigures
\listoftables
\include{Introduction}
\include{Problem}
\include{Background}
\include{Design}
\include{Results}
\include{Outlook}
\include{Summary}
\include{Conclusion}
\appendix
\renewcommand{\thepart}{\Alph{part}}
@ -50,8 +49,6 @@
% simulation data, additional theoretical disquisitions, ...
%
\include{appendix}
\include{Timetable}
\include{Originalproblem}
%** bibtex is used to automatically generate the bibliography
% references are stored in refs/refs.bib

View File

@ -1,3 +0,0 @@
\chapter{\label{timetable}Timetable}
Here may come your thesis schedule (the original plan and ev. the actual outcome).
-> can be from plan.org

View File

@ -16,11 +16,11 @@
\vspace{\fill}
Master Thesis MA-2019S\\
Master Thesis MA-2019-19\\
February 2019 to August 2019\\
\vspace{1cm}
Tutors: Alexander Dietmüller, Edgar Costa Molero\\
Tutors: Alexander Dietmüller, Edgar Costa Molero, Tobias Bühler\\
Supervisor: Prof. Dr. Laurent Vanbever\\
\end{titlepage}

View File

@ -54,6 +54,15 @@ Sample code for installation:
sed -i 's/\(P4_PROJECT_NAME=\).*/\1minip4/' ~/projects/P4-NetFPGA/tools/settings.sh
\end{verbatim}
Version \textbf{v1.3.1-46-g97d3aaa} of the P4-NetPFGA repository was
used for creating the bitfiles of this project.
\begin{verbatim}
nico@nsg-System:~/projects/P4-NetFPGA$ git describe --always
v1.3.1-46-g97d3aaa
\end{verbatim}
% ----------------------------------------------------------------------
\chapter{\label{appendix0}BMV2 environment and tests}
All BMV2 based compilations were made with the following compiler:

View File

@ -1,5 +0,0 @@
\chapter{\label{conclusionoutlook}Conclusion and Outlook}
\section{\label{conclusionoutlook:conclusion}Conclusion}
\section{\label{conclusionoutlook:outlook}Outlook}

View File

@ -619,7 +619,8 @@ DEBUG:main:o=<Ether dst=33:33:ff:00:00:42 src=00:00:0a:00:00:01 type=0x86dd |<I
DEBUG:main:Doing neighbor solicitation
**** DONE For other nodes -> multicast
**** TODO Maybe implement link local addresses (missing at the moment)
**** DONE Maybe implement link local addresses (missing at the moment): no
CLOSED: [2019-08-07 Wed 13:59]
***** ff02::/??
***** rfc4861
"Neighbor Solicitation messages are multicast to the solicited-node
@ -842,9 +843,12 @@ rtt min/avg/max/mdev = 6.304/6.304/6.304/0.000 ms
***** TODO Correct IPv4 header checksum
***** TODO Correct ICMP header checksum
***** TODO Fix length issue
***** DONE Correct IPv4 header checksum
CLOSED: [2019-08-07 Wed 14:00]
***** DONE Correct ICMP header checksum
CLOSED: [2019-08-07 Wed 14:00]
***** DONE Fix length issue
CLOSED: [2019-08-07 Wed 14:00]
- Seems like total_len is too short - but why?
**** DONE try5: packet is good, but routing is "strange": default route == 10.0.0.66
root@ubuntu:~# ip r
@ -902,9 +906,11 @@ PING 192.168.4.1 (192.168.4.1) 56(84) bytes of data.
rtt min/avg/max/mdev = 15.533/15.533/15.533/0.000 ms
root@line:~#
**** TODO Implement default route handling, maybe implement ARP?
**** DONE Implement default route handling, maybe implement ARP?
CLOSED: [2019-08-07 Wed 14:00]
***** DONE create arp table
***** TODO Multiple tables not supported
***** DONE Multiple tables not supported
CLOSED: [2019-08-07 Wed 14:00]
p4c --target bmv2 --arch v1model --std p4-16 "../p4src/static-mapping.p4" -o "/home/p4/master-thesis/p4src"
../p4src/static-mapping.p4(366): error: Program is not supported by this target, because table MyIngress.v6_networks has multiple successors
table v6_networks {
@ -3346,7 +3352,7 @@ https://en.wikipedia.org/wiki/IPv4_header_checksum
** TODO Benchmark/comparison
*** TODO Setup / Benchmark Jool
*** TODO Setup / Benchmark tayga
* Thesis documentation
* TODO Thesis documentation
** Introduction
*** Related work
**** RFC6052
@ -3819,7 +3825,8 @@ INFO:main:unhandled reassambled=<Ether dst=00:00:0a:00:00:42 src=00:00:0a:00:00
CLOSED: [2019-07-21 Sun 13:55]
**** DONE tcp session
CLOSED: [2019-07-21 Sun 13:55]
** TODO Hardware port
** DONE Hardware port
CLOSED: [2019-08-07 Wed 14:00]
*** Installation issues
Installing vivado would stall/sleep/hang forverer due to missing
system library, no error output.
@ -3838,7 +3845,8 @@ what.
- non fatal/fatal errors cannot be distinguished
grep: ../../../RELEASE_NOTES: No such file or directory
** TODO Comparison with existing tools (Performance, Features)
** DONE Comparison with existing tools (Performance, Features)
CLOSED: [2019-08-07 Wed 14:00]
*** Features
| What? | Description | State in P4 | References |
|---------------------+------------------------------------------+-------------------+---------------------------------------------------------------------------------|
@ -4116,7 +4124,8 @@ Fragmented ICMP/ICMPv6 packets will not be translated by IP/ICMP translators.
**** TODO Security issue: not checking checksums before
- Could be implemented
** TODO Log various
** DONE Log various
CLOSED: [2019-08-07 Wed 14:00]
*** 2019-06-06
No device seen after loading modules after reboot - netfpga.
Trying to reprogram
@ -5722,7 +5731,8 @@ ERROR: [Common 17-69] Command failed: Run 'impl_1' has not been launched. Unable
Vivado%
Vivado%
#+END_CENTER
*** TODO 2019-07-21: whether or not to handle icmp(6) checksums
*** DONE 2019-07-21: whether or not to handle icmp(6) checksums: no
CLOSED: [2019-08-07 Wed 14:00]
*** DONE 2019-07-21: implement v6->v4 delta based
CLOSED: [2019-07-21 Sun 12:30]
#+BEGIN_CENTER
@ -6119,7 +6129,8 @@ nico@nsg-System:~/master-thesis/netpfga/minip4/simple_sume_switch/test/sim_switc
CLOSED: [2019-07-24 Wed 12:21]
*** DONE 2019-07-23: merge/migrate code into switch calc until it breaks
CLOSED: [2019-07-24 Wed 12:21]
*** TODO 2019-07-23: install xilinx & co. to eth2.nico.ungleich.cloud -> 2nd compiler [MANUAL]
*** DONE 2019-07-23: install xilinx & co. to eth2.nico.ungleich.cloud -> 2nd compiler [MANUAL]
CLOSED: [2019-08-07 Wed 14:00]
**** DONE Install SDNET via xsetup
CLOSED: [2019-07-23 Tue 11:03]
**** DONE Not enough space for installing vivado (40g+ required)
@ -6408,7 +6419,8 @@ make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume
Makefile:31: recipe for target 'frontend' failed
#+END_CENTER
*** TODO Further notes P4/master thesis
*** DONE *Further notes P4/master thesis*
CLOSED: [2019-08-07 Wed 14:01]
- Cannot easily run P4 on notebook - changes to the system very
invasive
- Varous compiler bugs/limitations
@ -6447,8 +6459,10 @@ release, use 'get_user_parameters' instead
messages that actually constitute ERROR messages, but are not
flagged as such nor do they cause the build process to abort.
*** TODO 2019-07-24: setup VM in DCL as third compiler [INSTALL MANUAL]
**** TODO install mate for getting xlibraries
*** DONE 2019-07-24: setup VM in DCL as third compiler [INSTALL MANUAL]: no
CLOSED: [2019-08-07 Wed 14:01]
**** DONE install mate for getting xlibraries
CLOSED: [2019-08-07 Wed 14:01]
**** Install sdnet
*** DONE 2019-07-24: LIMIT add features to netpfga: LPM tables cannot be 64
@ -6907,8 +6921,10 @@ nico@nsg-System:~/master-thesis/netpfga$
nico@nsg-System:~/master-thesis/netpfga$
#+END_CENTER
*** 2019-07-27
*** TODO 2019-07-27: test output ports / connection to 2nd computer / dst_addr / exact
*** DONE 2019-07-27
CLOSED: [2019-08-07 Wed 14:01]
*** DONE 2019-07-27: test output ports / connection to 2nd computer / dst_addr / exact
CLOSED: [2019-08-07 Wed 14:01]
- action: TopPipe.realmain.set_egress_port
- IPv6 address: 42540766411362381960998550477184434178
- Table: realmain_v6_networks_0
@ -6928,7 +6944,8 @@ ERROR: TopPipe.set_egress_port is not a recognized action for table realmain_v6_
ERROR: not enough fields provided to complete _hexify()
#+END_CENTER
*** TODO 2019-07-27: find out where the _hexify() error comes from
*** DONE 2019-07-27: find out where the _hexify() error comes from
CLOSED: [2019-08-07 Wed 14:01]
- no raise() in the code -> just sys.exit...
- using table_tcam_write_entry
- 6 arguments are parsed:
@ -7030,7 +7047,8 @@ nico@ESPRIMO-P956:~$
#+END_CENTER
*** TODO 2019-07-27: also write output port for ::3
*** DONE 2019-07-27: also write output port for ::3
CLOSED: [2019-08-07 Wed 14:01]
#+BEGIN_CENTER
>> table_cam_add_entry realmain_v6_networks_0 realmain.set_egress_port 42540766411362381960998550477184434179 => 1 1 0 0 0
@ -7073,8 +7091,10 @@ nico@nsg-System:~/master-thesis/netpfga/minip4/sw/CLI$
#+END_CENTER
*** DONE 2019-07-27: fix broken python code for deleting table entry: p4_px_tables.py on nsg
CLOSED: [2019-07-27 Sat 21:28]
*** TODO 2019-07-27: find out, why more parameters are required for table_cam_add_entry
*** TODO 2019-07-27: receiving any packet from the card
*** DONE 2019-07-27: find out, why more parameters are required for table_cam_add_entry
CLOSED: [2019-08-07 Wed 14:01]
*** DONE 2019-07-27: receiving any packet from the card
CLOSED: [2019-08-07 Wed 14:01]
#+BEGIN_CENTER
nico@ESPRIMO-P956:~$ sudo ip l s enp2s0f0 up
nico@ESPRIMO-P956:~$ sudo ip l s enp2s0f1 up
@ -7124,7 +7144,8 @@ PARAMS:
#+END_CENTER
*** TODO 2019-07-27: try adding table entries / running ipv6/ipv4 nat code
*** DONE 2019-07-27: try adding table entries / running ipv6/ipv4 nat code
CLOSED: [2019-08-07 Wed 14:01]
#+BEGIN_CENTER
nico@nsg-System:~/master-thesis$ ls
u'type': u'bits'}],
@ -8268,8 +8289,10 @@ listening on enp2s0f0, link-type EN10MB (Ethernet), capture size 262144 bytes
table_cam_add_entry realmain_nat64_0 realmain.nat64_static 42540766411362381960998550477352206378 => 42540766411362381960998550477184434176 167772160 42540766411362381960998550477184434176 0
#+END_CENTER
*** TODO 2019-08-02: ipv4 checksum after nat64 is empty!
*** TODO 2019-08-04: test nat64: ipv4 checksums
*** DONE 2019-08-02: ipv4 checksum after nat64 is empty!
CLOSED: [2019-08-07 Wed 14:01]
*** DONE 2019-08-04: test nat64: ipv4 checksums
CLOSED: [2019-08-07 Wed 14:01]
**** DONE Setting table entries: ok
CLOSED: [2019-08-04 Sun 08:55]
#+BEGIN_CENTER
@ -8471,11 +8494,13 @@ trace:
create mode 100644 pcap/netfpga-nat64-udp-2019-08-04-0913-enp2s0f0.pcap
create mode 100644 pcap/netfpga-nat64-udp-2019-08-04-0913-enp2s0f1.pcap
**** TODO NOTE: outgoing ipv4 checksum incorrect -> doesn't make sense
**** DONE NOTE: outgoing ipv4 checksum incorrect -> doesn't make sense
CLOSED: [2019-08-07 Wed 14:01]
As this one is generated by socat, no nat64 involed. Maybe tcp
offloading is active.
*** TODO 2019-08-04: Testing more traffic: fails. trace:
*** DONE 2019-08-04: Testing more traffic: fails. trace:
CLOSED: [2019-08-07 Wed 14:01]
#+BEGIN_CENTER
nico@ESPRIMO-P956:~/master-thesis/bin$ xxd /dev/urandom | socat - UDP:10.0.0.66:2345
nico@ESPRIMO-P956:~/master-thesis/bin$ while true; do xxd /dev/urandom | socat - UDP6-LISTEN:2345; sleep 0.2; done
@ -8515,14 +8540,16 @@ Ubuntu 16.04.5 LTS \n \l
but no passwd!
*** TODO IPv6 options (fragments) set that were not set before!
*** DONE IPv6 options (fragments) set that were not set before!
CLOSED: [2019-08-07 Wed 14:01]
Trace:
#+BEGIN_CENTER
create mode 100644 pcap/netfpga-nat64-tcp-xxd-2019-08-04-0930-enp2s0f0.pcap
create mode 100644 pcap/netfpga-nat64-tcp-xxd-2019-08-04-0930-enp2s0f1.pcap
#+END_CENTER
*** TODO retry manually: long packets break
*** DONE retry manually: long packets break
CLOSED: [2019-08-07 Wed 14:01]
#+BEGIN_CENTER
nico@ESPRIMO-P956:~/master-thesis/pcap$ ~/master-thesis/bin/sniff-intf.sh enp2s0f0 netfpga-nat64-udp-manually
nico@ESPRIMO-P956:~/master-thesis/bin$ socat - UDP6-LISTEN:2345
@ -8695,7 +8722,8 @@ Cannot get device udp-fragmentation-offload settings: Operation not supported
root@ESPRIMO-P956:~#
#+END_CENTER
*** TODO 2019-08-04: post tuning test
*** DONE 2019-08-04: post tuning test
CLOSED: [2019-08-07 Wed 14:02]
v4 side:
@ -9196,7 +9224,7 @@ nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/project
#+END_CENTER
** References / Follow up
** TODO References / Follow up
*** TODO Board
*** RFC 791 IPv4 https://tools.ietf.org/html/rfc791
*** RFC 792 ICMP https://tools.ietf.org/html/rfc792
@ -9239,6 +9267,30 @@ nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/project
*** V1 model: https://github.com/p4lang/p4c/blob/master/p4include/v1model.p4
*** Cisco NAT64 https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/xe-3s/nat-xe-3s-book/iadnat-stateful-nat64.pdf
*** Wiki_mac: https://en.wikipedia.org/wiki/MAC_address
** TODO Writing Thesis
*** TODO Introduction: 1-2 pages
*** TODO Fill out background sectio
*** TODO Read through/add all points from plan.org
*** TODO Update doc from input Tobias (2019-08-05)
*** TODO Add graphs from benchmark
*** TODO Ensure bibiography is containing everything
*** TODO Add the final declaration of conformity
*** TODO Don't order by time, but show a procss
*** TODO Send for review to Tobias/Thilo
*** TODO Add plots!
*** TODO Create graph of with and without router
*** TODO Add comparison with other solutions (Results?)
*** TODO Show / create graph of a bigger network
*** Rough time table / effort
| | | Status |
| Abstract | 1 day | |
| Introduction | 1 day | |
| Background | 1 day | |
| Design | 1-2 days | |
| Results | 2-3 days | |
| Conclusion | 1 day | |
| Proof reading | 2-3 days | |
| SUM(max) | 12d | |
* DONE Initial administration
** DONE Clarify PDF / form with Denise Spicher: free form description
** DONE Create task description to be handed in mystudies

78
doc/samples.tex Normal file
View File

@ -0,0 +1,78 @@
%% Well this section can be further subdivided into subsection. We present
%% this in subsection \ref{chapter2:essentials:subsections}.
%% \subsection{\label{chapter2:essentials:subsections}Subsections}
%% \paragraph{\label{introduction:essentials:subsections:paragraph}Paragraphs}
%% can be specially referenced as well.
%% Of further importance is the understanding of the following environments:
%% %*** itemized lists
%% \begin{itemize}
%% \item This shows an itemized bullet list
%% \begin{itemize}
%% \item Which can be used for several levels\ldots
%% \end{itemize}
%% \end{itemize}
%% %*** enumerated lists
%% \begin{enumerate}
%% \item The same applies to enumerated lists.
%% \end{enumerate}
%% %** figures
%% \begin{figure}[!hbt]
%% \begin{center}
%% % \includegraphics[width=\textwidth, angle=90]{file_name.eps}
%% \caption{This is a figure to be printed in a float}
%% \label{file_name}
%% \end{center}
%% \end{figure}
%% By figure \ref{file_name}, we show some funny figures.
%% Table with caption and footnotes below the table.
%% \begin{table}[htbp]
%% \begin{center}\begin{minipage}{\textwidth}
%% \begin{tabular}{| c | p{130pt} | l |}
%% \hline
%% Column 1 & Column 2 \newline (additional line) & Column 3 \\
%% \hline
%% C1,R2 & C2,R2 & C2,R3 \\
%% \hline
%% C1,R3 & \multicolumn{2}{| c |}{C2\&C3,R3} \\
%% \hline
%% C1,R4 & C2,R4\footnote{Footnote to table~\ref{tab:table1}} & C3,R4\\
%% \hline
%% \end{tabular}
%% \end{minipage}
%% \caption{Table 1}
%% \label{tab:table1}
%% \end{center}
%% \end{table}
%% Examples of different text sizes:
%% \small Small \\
%% \scriptsize Script size \\
%% \normalsize Normal \\
%% \large Large \\
%% \huge Huge \\
%% \normalsize
%% \CHECK
%% If we reference to another document, we cite the document \cite{Lamport:LaTeX}.
%% %** landscape
%% \NEW
%% \begin{landscape}
%% Of some interest is also the landscape environment:
%% \end{landscape}
%% \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.