Doc,various
This commit is contained in:
		
					parent
					
						
							
								7c42eefd40
							
						
					
				
			
			
				commit
				
					
						a2868a3f07
					
				
			
		
					 9 changed files with 500 additions and 74 deletions
				
			
		| 
						 | 
					@ -10,7 +10,7 @@ table_cam_add_entry realmain_v6_networks_0 realmain.set_egress_port 425407664113
 | 
				
			||||||
table_cam_add_entry realmain_v6_networks_0 realmain.set_egress_port 42540766411362381960998550477352206378 => 64  0 0 0 0
 | 
					table_cam_add_entry realmain_v6_networks_0 realmain.set_egress_port 42540766411362381960998550477352206378 => 64  0 0 0 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 2001:db8:42:2a to be translated to 10.0.0.42:
 | 
					# 2001:db8:42:2a to be translated to 10.0.0.42:
 | 
				
			||||||
table_cam_add_entry realmain_nat64_0  realmain.nat64_static 42540766411362381960998550477184434218 => 42540766411362381960998550477184434176 167772160 42540766411362381960998550477184434176 0
 | 
					#table_cam_add_entry realmain_nat64_0  realmain.nat64_static 42540766411362381960998550477184434218 => 42540766411362381960998550477184434176 167772160 42540766411362381960998550477184434176 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 2001:db8:42::a00:2a to 10.0.0.42
 | 
					# 2001:db8:42::a00:2a to 10.0.0.42
 | 
				
			||||||
table_cam_add_entry realmain_nat64_0  realmain.nat64_static 42540766411362381960998550477352206378 => 42540766411362381960998550477184434176 167772160 42540766411362381960998550477184434176 0
 | 
					table_cam_add_entry realmain_nat64_0  realmain.nat64_static 42540766411362381960998550477352206378 => 42540766411362381960998550477184434176 167772160 42540766411362381960998550477184434176 0
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								bin/init_ipv4_esprimo.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								bin/init_ipv4_esprimo.sh
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ip addr add 10.0.0.42/24 dev enp2s0f0
 | 
				
			||||||
 | 
					ip link set enp2s0f0 up
 | 
				
			||||||
| 
						 | 
					@ -3,9 +3,13 @@
 | 
				
			||||||
# eth1 / nsg
 | 
					# eth1 / nsg
 | 
				
			||||||
remote_mac=f8:f2:1e:41:44:9c
 | 
					remote_mac=f8:f2:1e:41:44:9c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# enp2s0f1 / esprimo
 | 
				
			||||||
 | 
					remote_mac=f8:f2:1e:09:62:d1
 | 
				
			||||||
 | 
					intf=enp2s0f1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set -x
 | 
					set -x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for addr in $(seq 1 64); do
 | 
					for addr in $(seq 1 64); do
 | 
				
			||||||
    hwaddr=$(printf "%0.2d" $addr)
 | 
					    hwaddr=$(printf "%0.2d" $addr)
 | 
				
			||||||
    sudo ip neighbor add 10.0.0.$addr lladdr $remote_mac dev enp2s0f0
 | 
					    sudo ip neighbor add 10.0.0.$addr lladdr $remote_mac dev ${intf}
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,9 @@ Description of the theory/software/hardware that you designed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Maybe figures here? controller,
 | 
					Maybe figures here? controller,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{\label{Design:General}General}
 | 
				
			||||||
 | 
					\section{\label{Design:BMV2}BMV2}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{\label{Design:NetPFGA}NetFPGA}
 | 
					\section{\label{Design:NetPFGA}NetFPGA}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Netpfga live,
 | 
					Netpfga live,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										143
									
								
								doc/Problem.tex
									
										
									
									
									
								
							
							
						
						
									
										143
									
								
								doc/Problem.tex
									
										
									
									
									
								
							| 
						 | 
					@ -1,92 +1,99 @@
 | 
				
			||||||
\chapter{\label{chapter2}Problem / latex samples}
 | 
					\chapter{\label{chapter2}Problem}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%** Problem.tex: Documentation in own words of the problem to
 | 
					%** Problem.tex: Documentation in own words of the problem to
 | 
				
			||||||
%                be addressed in this document:
 | 
					%                be addressed in this document:
 | 
				
			||||||
%                What is the challenge, why is it useful what you
 | 
					%                What is the challenge, why is it useful what you
 | 
				
			||||||
%                plan to do.
 | 
					%                plan to do.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In \ref{introduction} we start with our introduction to the problem that 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
 | 
					%% 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
 | 
					%% go and show the essential issues of latex in section
 | 
				
			||||||
\ref{chapter2:essentials}.
 | 
					%% \ref{chapter2:essentials}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{\label{chapter2:essentials}Essentials}
 | 
					\section{\label{chapter2:linespeed}Line Speed NAT64}
 | 
				
			||||||
 | 
					NAT64 in software is CPU bound. Hardware can potentially do this at
 | 
				
			||||||
 | 
					line speed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Well this section can be further subdivided into subsection.  We present
 | 
					\section{\label{chapter2:transitition}Simplify IPv6 deployments}
 | 
				
			||||||
this in subsection \ref{chapter2:essentials:subsections}.
 | 
					Currently network operators have to focus on two network stacks when
 | 
				
			||||||
 | 
					designing networks: IPv6 and IPv4. As To simplify network setups
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\subsection{\label{chapter2:essentials:subsections}Subsections}
 | 
					%% Well this section can be further subdivided into subsection.  We present
 | 
				
			||||||
 | 
					%% this in subsection \ref{chapter2:essentials:subsections}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\paragraph{\label{introduction:essentials:subsections:paragraph}Paragraphs}
 | 
					%% \subsection{\label{chapter2:essentials:subsections}Subsections}
 | 
				
			||||||
can be specially referenced as well.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Of further importance is the understanding of the following environments:
 | 
					%% \paragraph{\label{introduction:essentials:subsections:paragraph}Paragraphs}
 | 
				
			||||||
 | 
					%% can be specially referenced as well.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%*** itemized lists
 | 
					%% Of further importance is the understanding of the following environments:
 | 
				
			||||||
\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
 | 
					%% %*** itemized lists
 | 
				
			||||||
\begin{enumerate}
 | 
					%% \begin{itemize}
 | 
				
			||||||
\item The same applies to enumerated lists.
 | 
					%% \item This shows an itemized bullet list
 | 
				
			||||||
\end{enumerate}
 | 
					%%   \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
 | 
					%% %** figures
 | 
				
			||||||
\begin{figure}[!hbt]
 | 
					%% \begin{figure}[!hbt]
 | 
				
			||||||
  \begin{center}
 | 
					%%   \begin{center}
 | 
				
			||||||
%		 \includegraphics[width=\textwidth, angle=90]{file_name.eps}
 | 
					%% %		 \includegraphics[width=\textwidth, angle=90]{file_name.eps}
 | 
				
			||||||
  \caption{This is a figure to be printed in a float}
 | 
					%%   \caption{This is a figure to be printed in a float}
 | 
				
			||||||
  \label{file_name}
 | 
					%%   \label{file_name}
 | 
				
			||||||
  \end{center}
 | 
					%%   \end{center}
 | 
				
			||||||
\end{figure}
 | 
					%% \end{figure}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
By figure \ref{file_name}, we show some funny figures.
 | 
					%% By figure \ref{file_name}, we show some funny figures.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Table with caption and footnotes below the table.
 | 
					%% Table with caption and footnotes below the table.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\begin{table}[htbp]
 | 
					%% \begin{table}[htbp]
 | 
				
			||||||
\begin{center}\begin{minipage}{\textwidth}
 | 
					%% \begin{center}\begin{minipage}{\textwidth}
 | 
				
			||||||
\begin{tabular}{| c | p{130pt} | l |}
 | 
					%% \begin{tabular}{| c | p{130pt} | l |}
 | 
				
			||||||
\hline
 | 
					%% \hline
 | 
				
			||||||
Column 1 & Column 2 \newline (additional line) & Column 3 \\
 | 
					%% Column 1 & Column 2 \newline (additional line) & Column 3 \\
 | 
				
			||||||
\hline
 | 
					%% \hline
 | 
				
			||||||
C1,R2 & C2,R2 & C2,R3 \\
 | 
					%% C1,R2 & C2,R2 & C2,R3 \\
 | 
				
			||||||
\hline
 | 
					%% \hline
 | 
				
			||||||
C1,R3	& \multicolumn{2}{| c |}{C2\&C3,R3} \\
 | 
					%% C1,R3	& \multicolumn{2}{| c |}{C2\&C3,R3} \\
 | 
				
			||||||
\hline
 | 
					%% \hline
 | 
				
			||||||
C1,R4 & C2,R4\footnote{Footnote to table~\ref{tab:table1}} & C3,R4\\
 | 
					%% C1,R4 & C2,R4\footnote{Footnote to table~\ref{tab:table1}} & C3,R4\\
 | 
				
			||||||
\hline
 | 
					%% \hline
 | 
				
			||||||
\end{tabular}
 | 
					%% \end{tabular}
 | 
				
			||||||
\end{minipage}
 | 
					%% \end{minipage}
 | 
				
			||||||
\caption{Table 1}
 | 
					%% \caption{Table 1}
 | 
				
			||||||
\label{tab:table1}
 | 
					%% \label{tab:table1}
 | 
				
			||||||
\end{center}
 | 
					%% \end{center}
 | 
				
			||||||
\end{table}
 | 
					%% \end{table}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Examples of different text sizes:
 | 
					%% Examples of different text sizes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\small Small \\
 | 
					%% \small Small \\
 | 
				
			||||||
\scriptsize Script size \\
 | 
					%% \scriptsize Script size \\
 | 
				
			||||||
\normalsize Normal \\
 | 
					%% \normalsize Normal \\
 | 
				
			||||||
\large Large \\
 | 
					%% \large Large \\
 | 
				
			||||||
\huge Huge \\
 | 
					%% \huge Huge \\
 | 
				
			||||||
\normalsize
 | 
					%% \normalsize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\CHECK
 | 
					%% \CHECK
 | 
				
			||||||
If we reference to another document, we cite the document \cite{Lamport:LaTeX}.
 | 
					%% If we reference to another document, we cite the document \cite{Lamport:LaTeX}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%** landscape
 | 
					%% %** landscape
 | 
				
			||||||
\NEW
 | 
					%% \NEW
 | 
				
			||||||
\begin{landscape}
 | 
					%% \begin{landscape}
 | 
				
			||||||
Of some interest is also the landscape environment:
 | 
					%% Of some interest is also the landscape environment:
 | 
				
			||||||
\end{landscape}
 | 
					%% \end{landscape}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\verbatiminput{filename.txt}
 | 
					%% \verbatiminput{filename.txt}
 | 
				
			||||||
Even though we don't think full listings are useful in documents,
 | 
					%% Even though we don't think full listings are useful in documents,
 | 
				
			||||||
you can easily insert complete files by the verbatiminput{}-command.
 | 
					%% you can easily insert complete files by the verbatiminput{}-command.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,3 +4,7 @@
 | 
				
			||||||
%                It should conclude by a conclusion.
 | 
					%                It should conclude by a conclusion.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sum up what you have done and recapitulate your key findings.
 | 
					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}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1,3 @@
 | 
				
			||||||
\chapter{\label{timetable}Timetable (?)}
 | 
					\chapter{\label{timetable}Timetable}
 | 
				
			||||||
Here may come your thesis schedule (the original plan and ev. the actual outcome).
 | 
					Here may come your thesis schedule (the original plan and ev. the actual outcome).
 | 
				
			||||||
-> can be from plan.org
 | 
					-> can be from plan.org
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										187
									
								
								doc/appendix.tex
									
										
									
									
									
								
							
							
						
						
									
										187
									
								
								doc/appendix.tex
									
										
									
									
									
								
							| 
						 | 
					@ -298,7 +298,192 @@ Step 4: ping test should translate, but fail with wrong checksum:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\chapter{\label{appendixB}Appendix B?}
 | 
					\chapter{\label{appendixB}NetFPGA Logs}
 | 
				
			||||||
 | 
					Majority of the log files are stored inside the source code directory
 | 
				
			||||||
 | 
					stored at ``netpfga/logs''. It follows a selection of log files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{\label{chapterB:netpfga-flasherror}NetFPGA Flash Errors}
 | 
				
			||||||
 | 
					Sometimes flashing bitfiles to the NetFPGA will fail. A random amount
 | 
				
			||||||
 | 
					of reboots (1 to 3) and a random amount of reflashing will fix this
 | 
				
			||||||
 | 
					problem.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Below can be found the log output from the flashing process.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{verbatim}
 | 
				
			||||||
 | 
					nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$ sudo bash -c ". $HOME/master-thesis/netpfga/bashinit && $(pwd -P)/program_switch.sh"
 | 
				
			||||||
 | 
					++ which vivado
 | 
				
			||||||
 | 
					+ xilinx_tool_path=/opt/Xilinx/Vivado/2018.2/bin/vivado
 | 
				
			||||||
 | 
					+ bitimage=minip4.bit
 | 
				
			||||||
 | 
					+ configWrites=config_writes.sh
 | 
				
			||||||
 | 
					+ '[' -z minip4.bit ']'
 | 
				
			||||||
 | 
					+ '[' -z config_writes.sh ']'
 | 
				
			||||||
 | 
					+ '[' /opt/Xilinx/Vivado/2018.2/bin/vivado == '' ']'
 | 
				
			||||||
 | 
					+ rmmod sume_riffa
 | 
				
			||||||
 | 
					+ xsct /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/run_xsct.tcl -tclargs minip4.bit
 | 
				
			||||||
 | 
					rlwrap: warning: your $TERM is 'screen' but rlwrap couldn't find it in the terminfo database. Expect some problems.
 | 
				
			||||||
 | 
					RUN loading image file.
 | 
				
			||||||
 | 
					minip4.bit
 | 
				
			||||||
 | 
					100%   19MB   1.7MB/s  00:11
 | 
				
			||||||
 | 
					fpga configuration failed. DONE PIN is not HIGH
 | 
				
			||||||
 | 
					    invoked from within
 | 
				
			||||||
 | 
					"::tcf::eval -progress ::xsdb::print_progress {::tcf::cache_enter tcfchan#0 {tcf_cache_eval {process_tcf_actions_cache_client ::tcfclient#0::arg}}}"
 | 
				
			||||||
 | 
					    (procedure "::tcf::cache_eval_with_progress" line 2)
 | 
				
			||||||
 | 
					    invoked from within
 | 
				
			||||||
 | 
					"::tcf::cache_eval_with_progress [dict get $arg chan]  [list process_tcf_actions_cache_client $argvar] $progress"
 | 
				
			||||||
 | 
					    (procedure "process_tcf_actions" line 1)
 | 
				
			||||||
 | 
					    invoked from within
 | 
				
			||||||
 | 
					"process_tcf_actions $arg ::xsdb::print_progress"
 | 
				
			||||||
 | 
					    (procedure "fpga" line 430)
 | 
				
			||||||
 | 
					    invoked from within
 | 
				
			||||||
 | 
					"fpga -f $bitimage"
 | 
				
			||||||
 | 
					    (file "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/run_xsct.tcl" line 33)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					+ bash /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/pci_rescan_run.sh
 | 
				
			||||||
 | 
					Check programming FPGA or Reboot machine !
 | 
				
			||||||
 | 
					+ rmmod sume_riffa
 | 
				
			||||||
 | 
					rmmod: ERROR: Module sume_riffa is not currently loaded
 | 
				
			||||||
 | 
					+ modprobe sume_riffa
 | 
				
			||||||
 | 
					+ ifconfig nf0 up
 | 
				
			||||||
 | 
					nf0: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf1 up
 | 
				
			||||||
 | 
					nf1: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf2 up
 | 
				
			||||||
 | 
					nf2: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf3 up
 | 
				
			||||||
 | 
					nf3: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ bash config_writes.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\end{verbatim}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{\label{chapterB:netpfga-flashok}NetFPGA Flash Success}
 | 
				
			||||||
 | 
					A successful flashing process also emits a couple of errors, however
 | 
				
			||||||
 | 
					the message ``fpga configuration failed. DONE PIN is not HIGH'' and
 | 
				
			||||||
 | 
					its succeeding lines are missing, as seen below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					After that in all cases a reboot is required; the PCI rescan in no
 | 
				
			||||||
 | 
					tested case showed the nf devices.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{verbatim}
 | 
				
			||||||
 | 
					nico@nsg-System:~$ cd $NF_DESIGN_DIR/bitfiles/
 | 
				
			||||||
 | 
					nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$ sudo bash -c ". $HOME/master-thesis/netpfga/bashinit && $(pwd -P)/program_switch.sh"
 | 
				
			||||||
 | 
					++ which vivado
 | 
				
			||||||
 | 
					+ xilinx_tool_path=/opt/Xilinx/Vivado/2018.2/bin/vivado
 | 
				
			||||||
 | 
					+ bitimage=minip4.bit
 | 
				
			||||||
 | 
					+ configWrites=config_writes.sh
 | 
				
			||||||
 | 
					+ '[' -z minip4.bit ']'
 | 
				
			||||||
 | 
					+ '[' -z config_writes.sh ']'
 | 
				
			||||||
 | 
					+ '[' /opt/Xilinx/Vivado/2018.2/bin/vivado == '' ']'
 | 
				
			||||||
 | 
					+ rmmod sume_riffa
 | 
				
			||||||
 | 
					+ xsct /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/run_xsct.tcl -tclargs minip4.bit
 | 
				
			||||||
 | 
					rlwrap: warning: your $TERM is 'xterm-256color' but rlwrap couldn't find it in the terminfo database. Expect some problems.
 | 
				
			||||||
 | 
					RUN loading image file.
 | 
				
			||||||
 | 
					minip4.bit
 | 
				
			||||||
 | 
					attempting to launch hw_server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					****** Xilinx hw_server v2018.2
 | 
				
			||||||
 | 
					  **** Build date : Jun 14 2018-20:18:37
 | 
				
			||||||
 | 
					    ** Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INFO: hw_server application started
 | 
				
			||||||
 | 
					INFO: Use Ctrl-C to exit hw_server application
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INFO: To connect to this hw_server instance use url: TCP:127.0.0.1:3121
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					100%   19MB   1.7MB/s  00:11
 | 
				
			||||||
 | 
					+ bash /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/pci_rescan_run.sh
 | 
				
			||||||
 | 
					Check programming FPGA or Reboot machine !
 | 
				
			||||||
 | 
					+ rmmod sume_riffa
 | 
				
			||||||
 | 
					rmmod: ERROR: Module sume_riffa is not currently loaded
 | 
				
			||||||
 | 
					+ modprobe sume_riffa
 | 
				
			||||||
 | 
					+ ifconfig nf0 up
 | 
				
			||||||
 | 
					nf0: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf1 up
 | 
				
			||||||
 | 
					nf1: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf2 up
 | 
				
			||||||
 | 
					nf2: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf3 up
 | 
				
			||||||
 | 
					nf3: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ bash config_writes.sh
 | 
				
			||||||
 | 
					nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$
 | 
				
			||||||
 | 
					\end{verbatim}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{\label{chapterB:netpfga-kernelmodule}NetFPGA Kernel module}
 | 
				
			||||||
 | 
					After a successful flash, loading the kernel module will enable nf
 | 
				
			||||||
 | 
					devices to appear in the operating system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{verbatim}
 | 
				
			||||||
 | 
					nico@nsg-System:~$ ip l
 | 
				
			||||||
 | 
					1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 | 
				
			||||||
 | 
					2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether 74:d0:2b:98:38:f6 brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether f8:f2:1e:41:44:9c brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether f8:f2:1e:41:44:9d brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/none
 | 
				
			||||||
 | 
					nico@nsg-System:~$ ~/master-thesis/bin/build-load-drivers.sh
 | 
				
			||||||
 | 
					+ cd /home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0
 | 
				
			||||||
 | 
					+ sudo modprobe -r sume_riffa
 | 
				
			||||||
 | 
					+ make clean
 | 
				
			||||||
 | 
					make -C /lib/modules/4.15.0-55-generic/build M=/home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0 clean
 | 
				
			||||||
 | 
					make[1]: Entering directory '/usr/src/linux-headers-4.15.0-55-generic'
 | 
				
			||||||
 | 
					  CLEAN   /home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0/.tmp_versions
 | 
				
			||||||
 | 
					  CLEAN   /home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0/Module.symvers
 | 
				
			||||||
 | 
					make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-55-generic'
 | 
				
			||||||
 | 
					+ make all
 | 
				
			||||||
 | 
					make -C /lib/modules/4.15.0-55-generic/build M=/home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0 modules
 | 
				
			||||||
 | 
					make[1]: Entering directory '/usr/src/linux-headers-4.15.0-55-generic'
 | 
				
			||||||
 | 
					  CC [M]  /home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0/sume_riffa.o
 | 
				
			||||||
 | 
					  Building modules, stage 2.
 | 
				
			||||||
 | 
					  MODPOST 1 modules
 | 
				
			||||||
 | 
					  CC      /home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0/sume_riffa.mod.o
 | 
				
			||||||
 | 
					  LD [M]  /home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0/sume_riffa.ko
 | 
				
			||||||
 | 
					make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-55-generic'
 | 
				
			||||||
 | 
					+ sudo make install
 | 
				
			||||||
 | 
					make -C /lib/modules/4.15.0-55-generic/build M=/home/nico/projects/P4-NetFPGA/lib/sw/std/driver/sume_riffa_v1_0_0 modules
 | 
				
			||||||
 | 
					make[1]: Entering directory '/usr/src/linux-headers-4.15.0-55-generic'
 | 
				
			||||||
 | 
					  Building modules, stage 2.
 | 
				
			||||||
 | 
					  MODPOST 1 modules
 | 
				
			||||||
 | 
					make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-55-generic'
 | 
				
			||||||
 | 
					install -o root -g root -m 0755 -d /lib/modules/4.15.0-55-generic/extra/sume_riffa/
 | 
				
			||||||
 | 
					install -o root -g root -m 0755 sume_riffa.ko /lib/modules/4.15.0-55-generic/extra/sume_riffa/
 | 
				
			||||||
 | 
					depmod -a 4.15.0-55-generic
 | 
				
			||||||
 | 
					+ sudo modprobe sume_riffa
 | 
				
			||||||
 | 
					+ grep sume_riffa
 | 
				
			||||||
 | 
					+ lsmod
 | 
				
			||||||
 | 
					sume_riffa             28672  0
 | 
				
			||||||
 | 
					nico@nsg-System:~$
 | 
				
			||||||
 | 
					nico@nsg-System:~$ ip l
 | 
				
			||||||
 | 
					1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 | 
				
			||||||
 | 
					2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether 74:d0:2b:98:38:f6 brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether f8:f2:1e:41:44:9c brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether f8:f2:1e:41:44:9d brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/none
 | 
				
			||||||
 | 
					6: nf0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether 02:53:55:4d:45:00 brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					7: nf1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether 02:53:55:4d:45:01 brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					8: nf2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether 02:53:55:4d:45:02 brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					9: nf3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
 | 
				
			||||||
 | 
					    link/ether 02:53:55:4d:45:03 brd ff:ff:ff:ff:ff:ff
 | 
				
			||||||
 | 
					nico@nsg-System:~$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\end{verbatim}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{\label{chapterB:netpfga-nftraffic}NetFPGA misses packets on nf*}
 | 
				
			||||||
 | 
					While the nf devices appear in the operating system, packets emitted
 | 
				
			||||||
 | 
					by the netpfga cannot be sniffed on the nf interfaces
 | 
				
			||||||
 | 
					directly. Instead one has to sniff packets on a physical network card
 | 
				
			||||||
 | 
					that is connected to the specific output port.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%Entries for the list of abbrevations:
 | 
					%Entries for the list of abbrevations:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										223
									
								
								doc/plan.org
									
										
									
									
									
								
							
							
						
						
									
										223
									
								
								doc/plan.org
									
										
									
									
									
								
							| 
						 | 
					@ -3,13 +3,16 @@
 | 
				
			||||||
| 2019-02-21 | Kick-Off                                                                   | x     |
 | 
					| 2019-02-21 | Kick-Off                                                                   | x     |
 | 
				
			||||||
|            | Finish all admin points                                                    | x     |
 | 
					|            | Finish all admin points                                                    | x     |
 | 
				
			||||||
|            | Know when/how to coordinate                                                | x     |
 | 
					|            | Know when/how to coordinate                                                | x     |
 | 
				
			||||||
 | 
					|            |                                                                            |       |
 | 
				
			||||||
| 2019-02-21 | Clarifications Ueli Maurer (Mentor)                                        | x     |
 | 
					| 2019-02-21 | Clarifications Ueli Maurer (Mentor)                                        | x     |
 | 
				
			||||||
|            | Write mail / phone                                                         | x     |
 | 
					|            | Write mail / phone                                                         | x     |
 | 
				
			||||||
 | 
					|            |                                                                            |       |
 | 
				
			||||||
| 2019-02-22 | Have all papers handed in                                                  |       |
 | 
					| 2019-02-22 | Have all papers handed in                                                  |       |
 | 
				
			||||||
|            |                                                                            |       |
 | 
					|            |                                                                            |       |
 | 
				
			||||||
| 2019-02-22 | Have rough definition of tasks                                             | x     |
 | 
					| 2019-02-22 | Have rough definition of tasks                                             | x     |
 | 
				
			||||||
|            |                                                                            |       |
 | 
					|            |                                                                            |       |
 | 
				
			||||||
| 2019-02-23 | python2 / ipaddress is buggy                                               | x     |
 | 
					| 2019-02-23 | python2 / ipaddress is buggy / has unicode problems                        | x     |
 | 
				
			||||||
 | 
					|            |                                                                            |       |
 | 
				
			||||||
|            | p4utils is python2 only support                                            |       |
 | 
					|            | p4utils is python2 only support                                            |       |
 | 
				
			||||||
|            | bmpy_utils is not installable with pip                                     |       |
 | 
					|            | bmpy_utils is not installable with pip                                     |       |
 | 
				
			||||||
|            | python2 / latest ipaddress==1.0.22 still has the bug                       |       |
 | 
					|            | python2 / latest ipaddress==1.0.22 still has the bug                       |       |
 | 
				
			||||||
| 
						 | 
					@ -21,7 +24,7 @@
 | 
				
			||||||
| 2019-02-24 | non reliable neighbor entries / flushing addresses puts into failed        |       |
 | 
					| 2019-02-24 | non reliable neighbor entries / flushing addresses puts into failed        |       |
 | 
				
			||||||
|            |                                                                            |       |
 | 
					|            |                                                                            |       |
 | 
				
			||||||
|            |                                                                            |       |
 | 
					|            |                                                                            |       |
 | 
				
			||||||
| 2019-02-28 | Meet Laurent #2                                                            |       |
 | 
					| 2019-02-28 | Meeting Laurent                                                            |       |
 | 
				
			||||||
|            | - Status                                                                   |       |
 | 
					|            | - Status                                                                   |       |
 | 
				
			||||||
|            | * Setup base code                                                          |       |
 | 
					|            | * Setup base code                                                          |       |
 | 
				
			||||||
|            | * Parser for all protocols (udp,tcp,icmp,icmp6)                            |       |
 | 
					|            | * Parser for all protocols (udp,tcp,icmp,icmp6)                            |       |
 | 
				
			||||||
| 
						 | 
					@ -8264,6 +8267,7 @@ table_cam_add_entry realmain_nat64_0  realmain.nat64_static 42540766411362381960
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#+END_CENTER
 | 
					#+END_CENTER
 | 
				
			||||||
*** TODO 2019-08-02: ipv4 checksum after nat64 is empty!
 | 
					*** TODO 2019-08-02: ipv4 checksum after nat64 is empty!
 | 
				
			||||||
 | 
					*** TODO 2019-08-03
 | 
				
			||||||
** The NetPFGA saga
 | 
					** The NetPFGA saga
 | 
				
			||||||
Problems encountered:
 | 
					Problems encountered:
 | 
				
			||||||
- The logfile for a compile run is 10k+ lines
 | 
					- The logfile for a compile run is 10k+ lines
 | 
				
			||||||
| 
						 | 
					@ -8355,6 +8359,221 @@ ls: cannot access '/home/nico/master-thesis/netpfga/minip4/simple_sume_switch/hw
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- not using raise() and hiding source of errors (_hexify)
 | 
					- not using raise() and hiding source of errors (_hexify)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- sometimes flashing fails:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+BEGIN_CENTER
 | 
				
			||||||
 | 
					nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$ sudo bash -c ". $HOME/master-thesis/netpfga/bashinit && $(pwd -P)/program_switch.sh"
 | 
				
			||||||
 | 
					++ which vivado
 | 
				
			||||||
 | 
					+ xilinx_tool_path=/opt/Xilinx/Vivado/2018.2/bin/vivado
 | 
				
			||||||
 | 
					+ bitimage=minip4.bit
 | 
				
			||||||
 | 
					+ configWrites=config_writes.sh
 | 
				
			||||||
 | 
					+ '[' -z minip4.bit ']'
 | 
				
			||||||
 | 
					+ '[' -z config_writes.sh ']'
 | 
				
			||||||
 | 
					+ '[' /opt/Xilinx/Vivado/2018.2/bin/vivado == '' ']'
 | 
				
			||||||
 | 
					+ rmmod sume_riffa
 | 
				
			||||||
 | 
					+ xsct /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/run_xsct.tcl -tclargs minip4.bit
 | 
				
			||||||
 | 
					rlwrap: warning: your $TERM is 'screen' but rlwrap couldn't find it in the terminfo database. Expect some problems.
 | 
				
			||||||
 | 
					RUN loading image file.
 | 
				
			||||||
 | 
					minip4.bit
 | 
				
			||||||
 | 
					100%   19MB   1.7MB/s  00:11
 | 
				
			||||||
 | 
					fpga configuration failed. DONE PIN is not HIGH
 | 
				
			||||||
 | 
					    invoked from within
 | 
				
			||||||
 | 
					"::tcf::eval -progress ::xsdb::print_progress {::tcf::cache_enter tcfchan#0 {tcf_cache_eval {process_tcf_actions_cache_client ::tcfclient#0::arg}}}"
 | 
				
			||||||
 | 
					    (procedure "::tcf::cache_eval_with_progress" line 2)
 | 
				
			||||||
 | 
					    invoked from within
 | 
				
			||||||
 | 
					"::tcf::cache_eval_with_progress [dict get $arg chan]  [list process_tcf_actions_cache_client $argvar] $progress"
 | 
				
			||||||
 | 
					    (procedure "process_tcf_actions" line 1)
 | 
				
			||||||
 | 
					    invoked from within
 | 
				
			||||||
 | 
					"process_tcf_actions $arg ::xsdb::print_progress"
 | 
				
			||||||
 | 
					    (procedure "fpga" line 430)
 | 
				
			||||||
 | 
					    invoked from within
 | 
				
			||||||
 | 
					"fpga -f $bitimage"
 | 
				
			||||||
 | 
					    (file "/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/run_xsct.tcl" line 33)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					+ bash /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/tools/pci_rescan_run.sh
 | 
				
			||||||
 | 
					Check programming FPGA or Reboot machine !
 | 
				
			||||||
 | 
					+ rmmod sume_riffa
 | 
				
			||||||
 | 
					rmmod: ERROR: Module sume_riffa is not currently loaded
 | 
				
			||||||
 | 
					+ modprobe sume_riffa
 | 
				
			||||||
 | 
					+ ifconfig nf0 up
 | 
				
			||||||
 | 
					nf0: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf1 up
 | 
				
			||||||
 | 
					nf1: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf2 up
 | 
				
			||||||
 | 
					nf2: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ ifconfig nf3 up
 | 
				
			||||||
 | 
					nf3: ERROR while getting interface flags: No such device
 | 
				
			||||||
 | 
					+ bash config_writes.sh
 | 
				
			||||||
 | 
					nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+END_CENTER
 | 
				
			||||||
 | 
					*** TODO 2019-08-04: test nat64: ipv4 checksums
 | 
				
			||||||
 | 
					**** DONE Setting table entries: ok
 | 
				
			||||||
 | 
					     CLOSED: [2019-08-04 Sun 08:55]
 | 
				
			||||||
 | 
					 #+BEGIN_CENTER
 | 
				
			||||||
 | 
					 nico@nsg-System:~$ ~/master-thesis/bin/switch-cli.sh
 | 
				
			||||||
 | 
					 loading libsume..
 | 
				
			||||||
 | 
					 loading libsume..
 | 
				
			||||||
 | 
					 loading libcam..
 | 
				
			||||||
 | 
					 The SimpleSumeSwitch interactive command line tool
 | 
				
			||||||
 | 
					  type help to see all commands
 | 
				
			||||||
 | 
					 >> table_cam_add_entry realmain_v4_networks_0 realmain.set_egress_port 167772202 => 16 0 0 0 0
 | 
				
			||||||
 | 
					 fields = [(u'hit', 1), (u'action_run', 3), (u'out_port', 8), (u'out_port', 8), (u'mac_addr', 48), (u'task', 16), (u'table_id', 16)]
 | 
				
			||||||
 | 
					 action_name = TopPipe.realmain.set_egress_port
 | 
				
			||||||
 | 
					 field_vals = [1, '16', '0', '0', '0', '0']
 | 
				
			||||||
 | 
					 CAM_Init_ValidateContext() - done
 | 
				
			||||||
 | 
					 WROTE 0x44020250 = 0xa00002a
 | 
				
			||||||
 | 
					 WROTE 0x44020280 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020284 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020288 = 0x10000000
 | 
				
			||||||
 | 
					 WROTE 0x4402028c = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020244 = 0x0001
 | 
				
			||||||
 | 
					 WROTE 0x44020240 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020244 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020244 = 0x0001
 | 
				
			||||||
 | 
					 success
 | 
				
			||||||
 | 
					 >>
 | 
				
			||||||
 | 
					 >> table_cam_add_entry realmain_v4_networks_0 realmain.set_egress_port 167772164 => 16 0 0 0 0
 | 
				
			||||||
 | 
					 fields = [(u'hit', 1), (u'action_run', 3), (u'out_port', 8), (u'out_port', 8), (u'mac_addr', 48), (u'task', 16), (u'table_id', 16)]
 | 
				
			||||||
 | 
					 action_name = TopPipe.realmain.set_egress_port
 | 
				
			||||||
 | 
					 field_vals = [1, '16', '0', '0', '0', '0']
 | 
				
			||||||
 | 
					 CAM_Init_ValidateContext() - done
 | 
				
			||||||
 | 
					 WROTE 0x44020250 = 0xa000004
 | 
				
			||||||
 | 
					 WROTE 0x44020280 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020284 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020288 = 0x10000000
 | 
				
			||||||
 | 
					 WROTE 0x4402028c = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020244 = 0x0001
 | 
				
			||||||
 | 
					 WROTE 0x44020240 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020244 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020244 = 0x0001
 | 
				
			||||||
 | 
					 success
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 >> table_cam_add_entry realmain_v6_networks_0 realmain.set_egress_port 42540766411362381960998550477184434182 => 64  0 0 0 0
 | 
				
			||||||
 | 
					 fields = [(u'hit', 1), (u'action_run', 3), (u'out_port', 8), (u'out_port', 8), (u'mac_addr', 48), (u'task', 16), (u'table_id', 16)]
 | 
				
			||||||
 | 
					 action_name = TopPipe.realmain.set_egress_port
 | 
				
			||||||
 | 
					 field_vals = [1, '64', '0', '0', '0', '0']
 | 
				
			||||||
 | 
					 CAM_Init_ValidateContext() - done
 | 
				
			||||||
 | 
					 WROTE 0x44020350 = 0x0006
 | 
				
			||||||
 | 
					 WROTE 0x44020354 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020358 = 0x420000
 | 
				
			||||||
 | 
					 WROTE 0x4402035c = 0x20010db8
 | 
				
			||||||
 | 
					 WROTE 0x44020380 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020384 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020388 = 0x40000000
 | 
				
			||||||
 | 
					 WROTE 0x4402038c = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 WROTE 0x44020340 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 success
 | 
				
			||||||
 | 
					 >> table_cam_add_entry realmain_v6_networks_0 realmain.set_egress_port 42540766411362381960998550477184434242 => 64  0 0 0 0
 | 
				
			||||||
 | 
					 fields = [(u'hit', 1), (u'action_run', 3), (u'out_port', 8), (u'out_port', 8), (u'mac_addr', 48), (u'task', 16), (u'table_id', 16)]
 | 
				
			||||||
 | 
					 action_name = TopPipe.realmain.set_egress_port
 | 
				
			||||||
 | 
					 field_vals = [1, '64', '0', '0', '0', '0']
 | 
				
			||||||
 | 
					 CAM_Init_ValidateContext() - done
 | 
				
			||||||
 | 
					 WROTE 0x44020350 = 0x0042
 | 
				
			||||||
 | 
					 WROTE 0x44020354 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020358 = 0x420000
 | 
				
			||||||
 | 
					 WROTE 0x4402035c = 0x20010db8
 | 
				
			||||||
 | 
					 WROTE 0x44020380 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020384 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020388 = 0x40000000
 | 
				
			||||||
 | 
					 WROTE 0x4402038c = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 WROTE 0x44020340 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 success
 | 
				
			||||||
 | 
					 >>
 | 
				
			||||||
 | 
					 >> table_cam_add_entry realmain_v6_networks_0 realmain.set_egress_port 42540766411362381960998550477352206378 => 64  0 0 0 0
 | 
				
			||||||
 | 
					 fields = [(u'hit', 1), (u'action_run', 3), (u'out_port', 8), (u'out_port', 8), (u'mac_addr', 48), (u'task', 16), (u'table_id', 16)]
 | 
				
			||||||
 | 
					 action_name = TopPipe.realmain.set_egress_port
 | 
				
			||||||
 | 
					 field_vals = [1, '64', '0', '0', '0', '0']
 | 
				
			||||||
 | 
					 CAM_Init_ValidateContext() - done
 | 
				
			||||||
 | 
					 WROTE 0x44020350 = 0xa00002a
 | 
				
			||||||
 | 
					 WROTE 0x44020354 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020358 = 0x420000
 | 
				
			||||||
 | 
					 WROTE 0x4402035c = 0x20010db8
 | 
				
			||||||
 | 
					 WROTE 0x44020380 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020384 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020388 = 0x40000000
 | 
				
			||||||
 | 
					 WROTE 0x4402038c = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 WROTE 0x44020340 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020344 = 0x0001
 | 
				
			||||||
 | 
					 success
 | 
				
			||||||
 | 
					 >>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 >> table_cam_add_entry realmain_nat64_0  realmain.nat64_static 42540766411362381960998550477352206378 => 42540766411362381960998550477184434176 167772160 42540766411362381960998550477184434176 0
 | 
				
			||||||
 | 
					 fields = [(u'hit', 1), (u'action_run', 3), (u'v6_src', 128), (u'v4_dst', 32), (u'nat64_prefix', 128), (u'table_id', 16)]
 | 
				
			||||||
 | 
					 action_name = TopPipe.realmain.nat64_static
 | 
				
			||||||
 | 
					 field_vals = [2, '42540766411362381960998550477184434176', '167772160', '42540766411362381960998550477184434176', '0']
 | 
				
			||||||
 | 
					 CAM_Init_ValidateContext() - done
 | 
				
			||||||
 | 
					 WROTE 0x44020050 = 0xa00002a
 | 
				
			||||||
 | 
					 WROTE 0x44020054 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020058 = 0x420000
 | 
				
			||||||
 | 
					 WROTE 0x4402005c = 0x20010db8
 | 
				
			||||||
 | 
					 WROTE 0x44020080 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020084 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020088 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x4402008c = 0xdb80042
 | 
				
			||||||
 | 
					 WROTE 0x44020090 = 0x2001
 | 
				
			||||||
 | 
					 WROTE 0x44020094 = 0x0a00
 | 
				
			||||||
 | 
					 WROTE 0x44020098 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x4402009c = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x440200a0 = 0xdb80042
 | 
				
			||||||
 | 
					 WROTE 0x440200a4 = 0x22001
 | 
				
			||||||
 | 
					 READ  0x44020044 = 0x0001
 | 
				
			||||||
 | 
					 WROTE 0x44020040 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020044 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020044 = 0x0001
 | 
				
			||||||
 | 
					 success
 | 
				
			||||||
 | 
					 >>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 >> table_cam_add_entry realmain_nat46_0 realmain.nat46_static 167772226 => 42540766411362381960998550477184434176 167772160 42540766411362381960998550477184434176 0
 | 
				
			||||||
 | 
					 fields = [(u'hit', 1), (u'action_run', 3), (u'v6_src', 128), (u'v4_dst', 32), (u'nat64_prefix', 128), (u'table_id', 16)]
 | 
				
			||||||
 | 
					 action_name = TopPipe.realmain.nat46_static
 | 
				
			||||||
 | 
					 field_vals = [2, '42540766411362381960998550477184434176', '167772160', '42540766411362381960998550477184434176', '0']
 | 
				
			||||||
 | 
					 CAM_Init_ValidateContext() - done
 | 
				
			||||||
 | 
					 WROTE 0x44020150 = 0xa000042
 | 
				
			||||||
 | 
					 WROTE 0x44020180 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020184 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x44020188 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x4402018c = 0xdb80042
 | 
				
			||||||
 | 
					 WROTE 0x44020190 = 0x2001
 | 
				
			||||||
 | 
					 WROTE 0x44020194 = 0x0a00
 | 
				
			||||||
 | 
					 WROTE 0x44020198 = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x4402019c = 0x0000
 | 
				
			||||||
 | 
					 WROTE 0x440201a0 = 0xdb80042
 | 
				
			||||||
 | 
					 WROTE 0x440201a4 = 0x22001
 | 
				
			||||||
 | 
					 READ  0x44020144 = 0x0001
 | 
				
			||||||
 | 
					 WROTE 0x44020140 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020144 = 0x0001
 | 
				
			||||||
 | 
					 READ  0x44020144 = 0x0001
 | 
				
			||||||
 | 
					 success
 | 
				
			||||||
 | 
					 >>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #+END_CENTER
 | 
				
			||||||
 | 
					**** TODO Testing translation: v4->v6
 | 
				
			||||||
 | 
					#+BEGIN_CENTER
 | 
				
			||||||
 | 
					nico@ESPRIMO-P956:~/master-thesis/bin$ ./socat-listen-tcp-v6
 | 
				
			||||||
 | 
					nico@ESPRIMO-P956:~/master-thesis$ ./bin/sniff-intf.sh enp2s0f0 netfpga-nat64
 | 
				
			||||||
 | 
					nico@ESPRIMO-P956:~/master-thesis$ ./bin/sniff-intf.sh enp2s0f1 netfpga-nat64
 | 
				
			||||||
 | 
					nico@ESPRIMO-P956:~/master-thesis/bin$ ./socat-connect-tcp-v4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+END_CENTER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Result:
 | 
				
			||||||
 | 
					#+BEGIN_CENTER
 | 
				
			||||||
 | 
					0 packets dropped by kernel
 | 
				
			||||||
 | 
					0 packets dropped by kernel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+END_CENTER
 | 
				
			||||||
 | 
					Problem: something removed the ipv4 address on the test host (again)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
** References / Follow up
 | 
					** References / Follow up
 | 
				
			||||||
*** RFC 791 IPv4 https://tools.ietf.org/html/rfc791
 | 
					*** RFC 791 IPv4 https://tools.ietf.org/html/rfc791
 | 
				
			||||||
*** RFC 792 ICMP https://tools.ietf.org/html/rfc792
 | 
					*** RFC 792 ICMP https://tools.ietf.org/html/rfc792
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue