[doc] egress works with table on NetFPGA
This commit is contained in:
parent
77d1f770c2
commit
bcc039cb31
6 changed files with 233 additions and 59 deletions
107
doc/appendix.tex
107
doc/appendix.tex
|
|
@ -1,5 +1,6 @@
|
|||
\chapter{\label{appendixA}Test descriptions}
|
||||
|
||||
\section{\label{chapterA:netpfga-setup}NetFPGA Setup}
|
||||
Description of installation, commit of netpfga-live
|
||||
|
||||
\section{\label{chapterA:section1}NetFPGA NAT64 Test cases}
|
||||
todo: add graphic of nsg <-> esprimo cabling
|
||||
|
|
@ -13,7 +14,24 @@ ip neigh add 10.0.0.42 lladdr f8:f2:1e:09:62:d1 dev enp2s0f0
|
|||
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{Test 1: do IPv4 egress settings work}
|
||||
For all test cases the following network settings on esprimo:
|
||||
|
||||
\begin{verbatim}
|
||||
12: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
|
||||
link/ether f8:f2:1e:09:62:d0 brd ff:ff:ff:ff:ff:ff
|
||||
inet 10.0.0.42/24 scope global enp2s0f0
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 fe80::faf2:1eff:fe09:62d0/64 scope link
|
||||
valid_lft forever preferred_lft forever
|
||||
13: enp2s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
|
||||
link/ether f8:f2:1e:09:62:d1 brd ff:ff:ff:ff:ff:ff
|
||||
inet6 2001:db8:42::42/64 scope global
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 fe80::faf2:1eff:fe09:62d1/64 scope link
|
||||
valid_lft forever preferred_lft forever
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{Test 1: IPv4 egress settings work}
|
||||
Scenario: simple egress port setting
|
||||
|
||||
Step 1: getting correct values for table entries from python:
|
||||
|
|
@ -74,7 +92,7 @@ root@ESPRIMO-P956:~# ip neigh add 10.0.0.4 lladdr f8:f2:1e:09:62:d1 dev enp2s0f0
|
|||
Step 3: generating test packets, expecting 4 packets to show up on
|
||||
enp2s0f0:
|
||||
|
||||
\begin{tiny}
|
||||
%\tvb
|
||||
\begin{verbatim}
|
||||
nico@ESPRIMO-P956:~$ sudo tcpdump -ni enp2s0f0
|
||||
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
|
||||
|
|
@ -84,11 +102,92 @@ listening on enp2s0f0, link-type EN10MB (Ethernet), capture size 262144 bytes
|
|||
10:49:29.222340 IP 10.0.0.42 > 10.0.0.4: ICMP echo request, id 4440, seq 2, length 64
|
||||
10:49:29.222418 IP 10.0.0.42 > 10.0.0.4: ICMP echo request, id 4440, seq 2, length 64
|
||||
\end{verbatim}
|
||||
\end{tiny}
|
||||
%\tve
|
||||
|
||||
Result: sucess
|
||||
|
||||
|
||||
\subsection{Test 2: IPv6 egress}
|
||||
Similar to the IPv4 setting before, just for IPv6.
|
||||
|
||||
Step 1: getting IP address values
|
||||
|
||||
\begin{verbatim}
|
||||
>>> int(ipaddress.IPv6Address(u"2001:db8:42::4"))
|
||||
42540766411362381960998550477184434180L
|
||||
>>> int(ipaddress.IPv6Address(u"2001:db8:42::6"))
|
||||
42540766411362381960998550477184434182L
|
||||
>>> int(ipaddress.IPv6Address(u"2001:db8:42::42"))
|
||||
42540766411362381960998550477184434242L
|
||||
\end{verbatim}
|
||||
|
||||
Step 2: setting table entries
|
||||
|
||||
\begin{verbatim}
|
||||
>> 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
|
||||
>>
|
||||
\end{verbatim}
|
||||
|
||||
Step 3: setting neighbor entries
|
||||
|
||||
\begin{verbatim}
|
||||
nico@ESPRIMO-P956:~$ sudo ip -6 neigh add 2001:db8:42::6 lladdr f8:f2:1e:09:62:d0 dev enp2s0f1
|
||||
nico@ESPRIMO-P956:~$ sudo ip -6 neigh add 2001:db8:42::4 lladdr f8:f2:1e:09:62:d0 dev enp2s0f1
|
||||
\end{verbatim}
|
||||
|
||||
Step 4: generating test packets
|
||||
|
||||
\begin{verbatim}
|
||||
nico@ESPRIMO-P956:~$ ping6 -c2 2001:db8:42::6
|
||||
PING 2001:db8:42::6(2001:db8:42::6) 56 data bytes
|
||||
|
||||
|
||||
nico@ESPRIMO-P956:~$ sudo tcpdump -ni enp2s0f1
|
||||
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
|
||||
listening on enp2s0f1, link-type EN10MB (Ethernet), capture size 262144 bytes
|
||||
11:30:17.287577 IP6 2001:db8:42::42 > 2001:db8:42::6: ICMP6, echo request, seq 1, length 64
|
||||
11:30:17.287599 IP6 2001:db8:42::42 > 2001:db8:42::6: ICMP6, echo request, seq 1, length 64
|
||||
11:30:18.310178 IP6 2001:db8:42::42 > 2001:db8:42::6: ICMP6, echo request, seq 2, length 64
|
||||
11:30:18.310258 IP6 2001:db8:42::42 > 2001:db8:42::6: ICMP6, echo request, seq 2, length 64
|
||||
|
||||
\end{verbatim}
|
||||
|
||||
Result: success, packet is seen twice.
|
||||
|
||||
\chapter{\label{appendixB}Appendix B?}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue