Update doc
This commit is contained in:
parent
2d2ca29637
commit
e19e8cc32a
18 changed files with 317 additions and 183 deletions
|
@ -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
15
doc/Background.tex
Normal 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
41
doc/Conclusion.tex
Normal 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}
|
|
@ -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}
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -3,7 +3,7 @@ FILE = Thesis
|
|||
|
||||
all:
|
||||
pdflatex $(FILE)
|
||||
bibtex $(FILE)
|
||||
# bibtex $(FILE)
|
||||
pdflatex $(FILE)
|
||||
pdflatex $(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
|
|
@ -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
|
|
@ -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.
|
|
@ -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}
|
||||
|
|
|
@ -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}
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
\chapter{\label{conclusionoutlook}Conclusion and Outlook}
|
||||
|
||||
\section{\label{conclusionoutlook:conclusion}Conclusion}
|
||||
|
||||
\section{\label{conclusionoutlook:outlook}Outlook}
|
112
doc/plan.org
112
doc/plan.org
|
@ -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
78
doc/samples.tex
Normal 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.
|
Loading…
Reference in a new issue