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…
	
	Add table
		Add a link
		
	
		Reference in a new issue