Add ping4 test from ipv4 host
This commit is contained in:
parent
771c12ccb7
commit
fc5e56e809
2 changed files with 43 additions and 25 deletions
39
doc/plan.org
39
doc/plan.org
|
@ -308,8 +308,8 @@ Not sure what I meant to do here - closing.
|
||||||
**** DONE Create table entry for mapping v4->v6 [net]
|
**** DONE Create table entry for mapping v4->v6 [net]
|
||||||
**** DONE Create table entry for mapping v6->v4 [net]
|
**** DONE Create table entry for mapping v6->v4 [net]
|
||||||
*** TODO Implement ICMP <-> ICMP6 translation
|
*** TODO Implement ICMP <-> ICMP6 translation
|
||||||
**** 2019-02-28 / icmp testing / first NDP steps
|
**** DONE 2019-02-28 / icmp testing / first NDP steps
|
||||||
***** pinging in router mode: nothing shown in the controller, multicast forwarded -> "ok"
|
***** DONE pinging in router mode: nothing shown in the controller, multicast forwarded -> "ok"
|
||||||
|
|
||||||
root@ubuntu:~/master-thesis/p4app# ping6 -c1 2001:db8:61::42
|
root@ubuntu:~/master-thesis/p4app# ping6 -c1 2001:db8:61::42
|
||||||
PING 2001:db8:61::42(2001:db8:61::42) 56 data bytes
|
PING 2001:db8:61::42(2001:db8:61::42) 56 data bytes
|
||||||
|
@ -469,7 +469,7 @@ sudo: unable to resolve host ubuntu
|
||||||
fe80::/64 dev h1-eth0 proto kernel metric 256 pref medium
|
fe80::/64 dev h1-eth0 proto kernel metric 256 pref medium
|
||||||
default via 2001:db8::42 dev h1-eth0 metric 1024 pref medium
|
default via 2001:db8::42 dev h1-eth0 metric 1024 pref medium
|
||||||
p4@ubuntu:~/master-thesis$
|
p4@ubuntu:~/master-thesis$
|
||||||
**** TODO TEST ping6ing an emulated ipv6 host / Translate icmp <-> icmp6: test v6_static_mapping
|
**** DONE TEST ping6ing an emulated ipv6 host / Translate icmp <-> icmp6: test v6_static_mapping
|
||||||
***** DONE try1: only packets on h1 + controller -> wrong checksum 2019-03-25
|
***** DONE try1: only packets on h1 + controller -> wrong checksum 2019-03-25
|
||||||
+ filename=static_nat64-2019-03-25-1121-h1.pcap
|
+ filename=static_nat64-2019-03-25-1121-h1.pcap
|
||||||
+ intf=h1-eth0
|
+ intf=h1-eth0
|
||||||
|
@ -690,7 +690,7 @@ INFO:main:unhandled reassambled=<Ether dst=00:00:0a:00:00:42 src=00:00:0a:00:00
|
||||||
**** DONE Solve logic problem: Valid headers
|
**** DONE Solve logic problem: Valid headers
|
||||||
- If ipv6 header is valid && nat64 will be made and afterwards v4 egress needs to be applied
|
- If ipv6 header is valid && nat64 will be made and afterwards v4 egress needs to be applied
|
||||||
- If ipv4 header is valid && nat46 will be made and afterwards v6 egress needs to be applied
|
- If ipv4 header is valid && nat46 will be made and afterwards v6 egress needs to be applied
|
||||||
**** TODO Check translated fields
|
**** DONE Check translated fields
|
||||||
***** DONE source correctly translated to 10.1.1.1
|
***** DONE source correctly translated to 10.1.1.1
|
||||||
***** DONE destination correctly translated to 10.0.0.1 -> pings h3
|
***** DONE destination correctly translated to 10.0.0.1 -> pings h3
|
||||||
***** DONE egress is correct, comes out at h3
|
***** DONE egress is correct, comes out at h3
|
||||||
|
@ -733,16 +733,25 @@ Entry has been added with handle 0
|
||||||
|
|
||||||
[09:57:31.415] [bmv2] [D] [thread 9332] [105.0] [cxt 0] Table 'MyIngress.v6_networks': miss
|
[09:57:31.415] [bmv2] [D] [thread 9332] [105.0] [cxt 0] Table 'MyIngress.v6_networks': miss
|
||||||
|
|
||||||
***** TODO transform protocol specific: icmp -> icmp6
|
***** DONE transform protocol specific: icmp -> icmp6
|
||||||
****** DONE Make switch answer IPv4 icmp echo request for
|
****** DONE Make switch answer IPv4 icmp echo request for
|
||||||
******* DONE Make switch respond to ARP
|
******* DONE Make switch respond to ARP
|
||||||
******* DONE Make switch respond to icmp echo request w/ correct checksum (2019-04-03)
|
******* DONE Make switch respond to icmp echo request w/ correct checksum (2019-04-03)
|
||||||
******* TODO Correct icmp6 checksum
|
******* DONE Correct icmp6 checksum
|
||||||
******** DONE Checksum is SET, but not correct!
|
******** DONE Checksum is SET, but not correct!
|
||||||
**** TODO Add / check default route for v4 hosts
|
***** DONE Test result (2019-04-03)
|
||||||
**** TODO Update p4c to avoid compiler bug
|
p4@ubuntu:~$ python ~/master-thesis/p4app/test.py -m v6_static_mapping
|
||||||
***** TODO Updating p4c
|
PING 2001:db8:1::a00:1(2001:db8:1::a00:1) 56 data bytes
|
||||||
****** DONE Try1
|
64 bytes from 2001:db8:1::a00:1: icmp_seq=1 ttl=64 time=14.7 ms
|
||||||
|
|
||||||
|
--- 2001:db8:1::a00:1 ping statistics ---
|
||||||
|
1 packets transmitted, 1 received, 0% packet loss, time 0ms
|
||||||
|
rtt min/avg/max/mdev = 14.750/14.750/14.750/0.000 ms
|
||||||
|
p4@ubuntu:~$
|
||||||
|
**** DONE Add / check default route for v4 hosts
|
||||||
|
*** TODO Update p4c to avoid compiler bug
|
||||||
|
**** TODO Updating p4c
|
||||||
|
***** DONE Try1
|
||||||
p4@ubuntu:~/p4-learning/vm/bin$ sh update-p4c.sh
|
p4@ubuntu:~/p4-learning/vm/bin$ sh update-p4c.sh
|
||||||
update-p4c.sh: 34: update-p4c.sh: Syntax error: "(" unexpected
|
update-p4c.sh: 34: update-p4c.sh: Syntax error: "(" unexpected
|
||||||
p4@ubuntu:~/p4-learning/vm/bin$ git pull
|
p4@ubuntu:~/p4-learning/vm/bin$ git pull
|
||||||
|
@ -754,8 +763,8 @@ Entry has been added with handle 0
|
||||||
p4@ubuntu:~/p4-tools/p4c$ git checkout 1ab1c796677a3a2349df9619d82831a39a6e4437
|
p4@ubuntu:~/p4-tools/p4c$ git checkout 1ab1c796677a3a2349df9619d82831a39a6e4437
|
||||||
p4@ubuntu:~/p4-tools/p4c/build$ cmake ..
|
p4@ubuntu:~/p4-tools/p4c/build$ cmake ..
|
||||||
p4@ubuntu:~/p4-tools/p4c/build$ make -j8
|
p4@ubuntu:~/p4-tools/p4c/build$ make -j8
|
||||||
****** DONE Need to upgrade RAM / c++ errors / killed
|
***** DONE Need to upgrade RAM / c++ errors / killed
|
||||||
****** DONE Compile error from 1ab1c79
|
***** DONE Compile error from 1ab1c79
|
||||||
[ 33%] Building CXX object frontends/CMakeFiles/frontend.dir/unified_frontend_sources_4.cpp.o
|
[ 33%] Building CXX object frontends/CMakeFiles/frontend.dir/unified_frontend_sources_4.cpp.o
|
||||||
[ 37%] Building CXX object frontends/CMakeFiles/frontend.dir/__/ir/ir-generated.cpp.o
|
[ 37%] Building CXX object frontends/CMakeFiles/frontend.dir/__/ir/ir-generated.cpp.o
|
||||||
[ 35%] Building CXX object frontends/CMakeFiles/frontend.dir/unified_frontend_sources_2.cpp.o
|
[ 35%] Building CXX object frontends/CMakeFiles/frontend.dir/unified_frontend_sources_2.cpp.o
|
||||||
|
@ -777,7 +786,7 @@ p4@ubuntu:~/p4-tools/p4c/build$ cd ..
|
||||||
p4@ubuntu:~/p4-tools/p4c$ git describe --always
|
p4@ubuntu:~/p4-tools/p4c$ git describe --always
|
||||||
1ab1c79
|
1ab1c79
|
||||||
p4@ubuntu:~/p4-tools/p4c$
|
p4@ubuntu:~/p4-tools/p4c$
|
||||||
****** DONE Upgrading to latest master: 46609cd -> fails
|
***** DONE Upgrading to latest master: 46609cd -> fails
|
||||||
p4@ubuntu:~/p4-tools/p4c$ git describe --always
|
p4@ubuntu:~/p4-tools/p4c$ git describe --always
|
||||||
46609cd
|
46609cd
|
||||||
|
|
||||||
|
@ -805,10 +814,10 @@ Scanning dependencies of target bmv2backend
|
||||||
Makefile:138: recipe for target 'all' failed
|
Makefile:138: recipe for target 'all' failed
|
||||||
make: *** [all] Error 2
|
make: *** [all] Error 2
|
||||||
p4@ubuntu:~/p4-tools/p4c/build$
|
p4@ubuntu:~/p4-tools/p4c/build$
|
||||||
****** DONE Build on notebook succeeds 900557c5
|
***** DONE Build on notebook succeeds 900557c5
|
||||||
[16:37] line:p4c% git describe --always
|
[16:37] line:p4c% git describe --always
|
||||||
900557c5
|
900557c5
|
||||||
****** TODO Build on VM with 900557c5 after removing build/
|
***** TODO Build on VM with 900557c5 after removing build/
|
||||||
*** TODO Get p4 VM / vagrant running
|
*** TODO Get p4 VM / vagrant running
|
||||||
**** DONE install libvirtd-daemon
|
**** DONE install libvirtd-daemon
|
||||||
**** DONE install ebtables
|
**** DONE install ebtables
|
||||||
|
|
|
@ -45,6 +45,15 @@ class TestStuff(object):
|
||||||
|
|
||||||
return cmd
|
return cmd
|
||||||
|
|
||||||
|
def test_v4_static_mapping(self):
|
||||||
|
host = "h3"
|
||||||
|
dst_ipv4 = ipaddress.ip_address("10.1.1.1")
|
||||||
|
|
||||||
|
log.info("Trying to reach {} from {}".format(dst_ipv4, host))
|
||||||
|
cmd = "mx {} ping -c1 {}".format(host, dst_ipv4).split(" ")
|
||||||
|
|
||||||
|
return cmd
|
||||||
|
|
||||||
|
|
||||||
def commandline(self):
|
def commandline(self):
|
||||||
parser = argparse.ArgumentParser(description='controller++')
|
parser = argparse.ArgumentParser(description='controller++')
|
||||||
|
|
Loading…
Reference in a new issue