Begin to write down lpm problem

This commit is contained in:
Nico Schottelius 2019-03-25 11:13:21 +01:00
commit f4372580c4
2 changed files with 165 additions and 16 deletions

View file

@ -123,6 +123,13 @@
| | Parsing on wrong field detected by unset fields in wireshark | |
| | Correcting parser->leads to incorrect checksum | |
| | - NDP is answered to, but icmp6 echo request isn't -> extend table | |
| | Problem with multiple LPM keys in table | |
| | - logical problem, overlapping length matches | |
| | - priority / ordering would be helpful | |
| | | |
| | | |
| 2019-03-25 | | |
| | | |
| | | |
| | | |
| 2019-03-28 | Meet Laurent #4 | |
@ -1155,17 +1162,28 @@ rtt min/avg/max/mdev = 3.055/3.055/3.055/0.000 ms
p4@ubuntu:~/master-thesis/p4app$
**** Requirements
**** Development mode/loop
Code - commit - push - pull - restart switch - restart controller -
check whether tables are applied correctly (type conversion
problems) - start tcpdump - start test program - stop tcpdump - add
pcap to git repo - git add-commit-push - git pull - start wireshark -
debug packets - analyse code - goto 1
**** Static NAT64
Asymmetric maps: v6->v4 can match whole IPv4 Internet (/96)
But v4->v6 can only map sub range!
Using /24s (for convience) in IPv4
**** Development mode/loop
Code - commit - push - pull -
restart switch - check whether all tables are present (missing .apply())
restart controller - check whether tables are applied correctly (type conversion problems) -
start tcpdump - start test program - stop tcpdump - add
pcap to git repo - git add-commit-push - git pull - start wireshark -
debug packets - analyse code - goto 1
**** Setting up a system for working on P4 on devuan
***** Scripts in the wild
https://github.com/nsg-ethz/p4-learning/blob/master/vm/bin/update-p4c.sh
https://github.com/jafingerhut/p4-guide/blob/master/bin/install-p4dev-p4runtime.sh
https://github.com/nsg-ethz/p4-learning/tree/master/vm/bin
***** mininet
***** bmv2
[21:24] line:~% sudo apt install libthrift-dev
[21:26] line:~% sudo apt install thrift-compiler
libnanomsg-dev libjudy-dev
*** Performance comparison
*** Feature/Functionality difference / overview / CHALLENGES / LIMITATIONS in P4
**** P4: cannot read key from table
@ -1238,6 +1256,31 @@ Exists!
- TYPE_CPU for ethernet
- Port ingress offset (9 vs. 16 bit)
**** Only one LPM key supported in tables (2019-03-23)
#+BEGIN_SRC
../p4src/static-mapping.p4(121): error: MyIngress.nat64, Multiple LPM keys in table
table nat64 {
^^^^^
Compilation Error
#+END_SRC
Code:
#+BEGIN_SRC
table nat64 {
key = {
hdr.ipv6.src_addr: lpm;
hdr.ipv6.dst_addr: lpm;
}
actions = {
controller_debug;
nat64_static;
NoAction;
}
size = NAT64_TABLE_SIZE;
default_action = controller_debug;
}
#+END_SRC
**** (current) Limitations
***** No fragmentation support (yet)
***** No session handling (yet)
@ -1249,16 +1292,6 @@ has already been solved in a different domain - could even do
transparent / in network modification
***** Incomplete NDP
Very limited option support
*** Setting up a system for working on P4 on devuan
**** Scripts in the wild
https://github.com/nsg-ethz/p4-learning/blob/master/vm/bin/update-p4c.sh
https://github.com/jafingerhut/p4-guide/blob/master/bin/install-p4dev-p4runtime.sh
https://github.com/nsg-ethz/p4-learning/tree/master/vm/bin
**** mininet
**** bmv2
[21:24] line:~% sudo apt install libthrift-dev
[21:26] line:~% sudo apt install thrift-compiler
libnanomsg-dev libjudy-dev
*** References / Follow up
**** RFC 2460 IPv6 (Checksum https://tools.ietf.org/html/rfc2460#section-8.1)
**** RFC 3810 MLD2 https://tools.ietf.org/html/rfc3810