Nico Schottelius
7bba816f2c
v4 if next to v6 if, not to nat64
2019-07-25 14:40:20 +02:00
Nico Schottelius
5478e9fad7
Begin to write defines for netpfga instead of actions
2019-07-24 23:45:40 +02:00
Nico Schottelius
a3dd7ee106
++log
2019-07-24 23:33:09 +02:00
Nico Schottelius
8c94c1ac09
[netpfga] Fix default actions / cannot have arguments
2019-07-24 22:52:23 +02:00
Nico Schottelius
dc7d78252e
Merge full IPv6 handling code from BMV2 side
2019-07-24 22:48:21 +02:00
Nico Schottelius
6b176fdc06
table size up, down, up...
...
Exact matches don't like 63
actions_nat64_generic.p4(173): error: table size too small for match_type(EM): 63 < 64
size = 63;
^^
actions_nat64_generic.p4(173): error: could not not map table size size
size = 63;
^^^^
2019-07-24 22:42:05 +02:00
Nico Schottelius
a055f55c8d
++notes
2019-07-24 22:39:59 +02:00
Nico Schottelius
4afbf053af
[netpfga] change table key to exact instead of LPM
...
Known bug of netpfga not correctly supporting LPM. Current bug
might be triggered by it:
2019-07-24 22:38:55 +02:00
Nico Schottelius
9e6bb893ac
[netpfga] remove ARP support
...
Due to
minip4_solution.p4(35)
parser RealParser(
^^^^^^^^^^
error: table match_types are not the same
actions_arp.p4(35): error: could not map table key(s) KeyElement
hdr.arp.dst_ipv4_addr: lpm;
^^^^^^^^^^^^^^^^^^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
caused by
table v4_arp {
key = {
hdr.ethernet.dst_addr: exact;
hdr.arp.opcode: exact;
hdr.arp.dst_ipv4_addr: lpm;
}
2019-07-24 22:27:36 +02:00
Nico Schottelius
306d52176f
Set table size to 2^n -1 for everything
...
Motivated by v6.1 error:
make[1]: Entering directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
p4c-sdnet -o minip4.sdnet --sdnet_info .sdnet_switch_info.dat minip4_solution.p4
actions_egress.p4(52): warning: Table v6_networks is not used; removing
table v6_networks {
^^^^^^^^^^^
actions_egress.p4(69): warning: Table v4_networks is not used; removing
table v4_networks {
^^^^^^^^^^^
actions_nat64_generic.p4(174): warning: Table nat46 is not used; removing
table nat46 {
^^^^^
minip4_solution.p4(38): [--Wwarn=uninitialized_out_param] warning: out parameter meta may be uninitialized when RealParser terminates
out metadata meta,
^^^^
minip4_solution.p4(35)
parser RealParser(
^^^^^^^^^^
error: LPM table size should be 2^n - 1
actions_nat64_generic.p4(169): error: could not not map table size size
size = 64;
^^^^
error: table match_types are not the same
actions_arp.p4(35): error: could not map table key(s) KeyElement
hdr.arp.dst_ipv4_addr: lpm;
^^^^^^^^^^^^^^^^^^^^^
error: LPM table size should be 2^n - 1
actions_arp.p4(55): error: could not not map table size size
size = 64;
^^^^
Makefile:34: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/src'
Makefile:31: recipe for target 'frontend' failed
make: *** [frontend] Error 2
nico@nsg-System:~/master-thesis/netpfga/log$
2019-07-24 13:20:35 +02:00
Nico Schottelius
ee0d500355
[netpfga] phase in first applied tables/nat64 code
2019-07-24 13:08:02 +02:00
Nico Schottelius
3559637b56
--typo
2019-07-24 11:52:42 +02:00
Nico Schottelius
94e06be245
[netpfga] include UNUSED nat64 actions and tables
...
Will probably be removed, but need to check whether it still compiles.
2019-07-24 11:45:37 +02:00
Nico Schottelius
4eabf8cc38
state name change
2019-07-24 09:53:13 +02:00
Nico Schottelius
181870d14d
reset the code base to working version again
...
Signed-off-by: Nico Schottelius <nico@nico-notebook.schottelius.org>
2019-07-24 09:36:24 +02:00
Nico Schottelius
93c98323f4
add ifdef for controller actions
2019-07-23 15:50:31 +02:00
Nico Schottelius
6e162ca63b
Rewrite the netpfga p4 program
2019-07-23 12:21:49 +02:00
Nico Schottelius
1059e8d0e0
Begin from the beginning: reset to port1 only
2019-07-23 10:20:18 +02:00
Nico Schottelius
5064efda2d
++notes
2019-07-21 22:30:49 +02:00
Nico Schottelius
d97864ffa7
+notes -comment
2019-07-21 16:39:15 +02:00
Nico Schottelius
71404d9a58
++notes
2019-07-21 14:52:43 +02:00
Nico Schottelius
55a363055b
++debug of netfpga compile
2019-07-21 14:37:31 +02:00
Nico Schottelius
2462356e68
log update
2019-07-21 14:08:47 +02:00
Nico Schottelius
9458507ee9
Start pktcnt at 1 instead of 0
2019-07-21 12:15:04 +02:00
Nico Schottelius
6b478c87f1
Try fix shifting errors in first block
2019-07-21 10:50:26 +02:00
Nico Schottelius
266ab1d036
Try fixing shift errors (precendence!)
2019-07-21 10:48:35 +02:00
Nico Schottelius
dda1aa9c3c
Split ipv4 header into 16 bit words
2019-07-21 10:45:43 +02:00
Nico Schottelius
018e4cc9ff
In theory: implement NAT64 from v6 to v4 without externs
2019-07-21 10:23:49 +02:00
Nico Schottelius
020601f463
[checksum] add v6->v4 translations delta based, too
2019-07-17 18:06:49 +02:00
Nico Schottelius
55cc9db975
Fix meaning of "send_to_port1"
2019-07-17 17:41:54 +02:00
Nico Schottelius
831d69fe9c
Remove function, because functions don't compile
2019-07-17 17:37:37 +02:00
Nico Schottelius
87d2db4b5f
[netpfga] Add default action for matching, remove commands.txt
2019-07-17 17:24:34 +02:00
Nico Schottelius
512fca1349
update checksum code
2019-07-17 15:46:54 +02:00
Nico Schottelius
bc90421426
Get rid of negative wrap around
2019-07-16 13:05:13 +02:00
Nico Schottelius
811e4c2b11
Separate checksum addition/subtraction into 2 steps
2019-07-16 12:30:29 +02:00
Nico Schottelius
ec48d89c67
get the v6sum
2019-07-16 12:14:46 +02:00
Nico Schottelius
ecab110d7c
Back to 16 bit arithmetic
2019-07-16 12:06:26 +02:00
Nico Schottelius
1a39c35e3b
Check how wrapping is done in P4
2019-07-16 11:53:00 +02:00
Nico Schottelius
baa50b91c6
Use own filtering code
2019-07-15 16:53:57 +02:00
Nico Schottelius
f0900c3821
update tcp checksumming
2019-07-15 16:48:24 +02:00
Nico Schottelius
26c27cefa8
Change order of complement & filtering
2019-07-15 16:20:51 +02:00
Nico Schottelius
a9cc93281e
Change testdata offset by 1 and find checksum error
2019-07-13 22:07:53 +02:00
Nico Schottelius
c243778bc3
++log ++change gen_testdata.py
2019-07-13 19:10:05 +02:00
Nico Schottelius
86885760b2
update gen_testdata
...
- add more packets
- fix counter for one packet
2019-07-13 17:28:03 +02:00
Nico Schottelius
75c185794e
++notes
2019-07-11 10:58:06 +02:00
Nico Schottelius
e9997964cd
Split of checksumming of bmv2
2019-07-11 10:50:00 +02:00
Nico Schottelius
378e16f48c
++stuff
2019-07-11 08:47:34 +02:00
Nico Schottelius
04d0fbc85a
send udp from scapy
2019-07-10 14:37:58 +02:00
Nico Schottelius
476b04c97c
++doc ++egress port
2019-07-10 08:55:07 +02:00
Nico Schottelius
ff383e3b08
add test json file for bmv2
2019-07-10 08:44:56 +02:00
Nico Schottelius
a69c4060e2
begin implementing diff based checksum in p4
2019-07-06 20:57:11 +02:00
Nico Schottelius
ce212ed9e1
Checksums: ipv4 diff not needed; minip4: enable icmp, arp
2019-07-01 11:03:10 +02:00
Nico Schottelius
92e1407729
checksumming part finish
2019-07-01 09:36:14 +02:00
Nico Schottelius
b757a3c2b0
Use UDP for testing checksums
2019-06-29 17:13:28 +02:00
Nico Schottelius
80aeaf164a
port controller sending code partially to netpfga
2019-06-24 14:24:51 +02:00
Nico Schottelius
0a225479c7
Generate different test data
2019-06-24 13:45:06 +02:00
Nico Schottelius
47a7c966bf
Try matching different compiler output
2019-06-24 13:20:20 +02:00
Nico Schottelius
8b8f70e6a0
Begin to introduce commented out code, use metadata
2019-06-24 13:05:42 +02:00
Nico Schottelius
408dd6b782
Delta checksum approach
2019-06-23 14:19:06 +02:00
Nico Schottelius
2b5d5ea62d
++netpfga updates
...
Signed-off-by: Nico Schottelius <nico@nico-notebook.schottelius.org>
2019-06-17 19:39:07 +02:00
Nico Schottelius
04d174c01f
++ meeting notes
2019-06-17 12:35:12 +02:00
Nico Schottelius
03317a6c11
++notes
2019-06-17 09:41:17 +02:00
Nico Schottelius
42af5cd2d8
++ notes
2019-06-15 22:49:54 +02:00
Nico Schottelius
47d49638a8
Try implementing bcast option in gen_testdata
2019-06-12 19:46:22 +02:00
Nico Schottelius
dec8a02a26
+doc +log +allports
2019-06-12 19:06:18 +02:00
Nico Schottelius
9cebd4024a
++ notes
2019-06-11 17:54:22 +02:00
Nico Schottelius
36ccd6e021
++ notes
2019-06-10 11:20:11 +02:00
Nico Schottelius
2130f14d02
add switch to skip long compile step
2019-06-06 22:30:31 +02:00
Nico Schottelius
ead0276527
add bin/ with test script for sending 1 packet
2019-06-04 19:41:57 +02:00
Nico Schottelius
5e10401f96
++doc ++sudo for drivers
2019-06-04 00:21:28 +02:00
Nico Schottelius
63ec17b9a4
begin to integrate headers of real code into netpfga
2019-06-03 22:33:37 +02:00
Nico Schottelius
e0226c4c90
try 1 == nf0
2019-06-03 22:01:58 +02:00
Nico Schottelius
442ea1a7da
++doc, use nf3
2019-06-03 21:56:45 +02:00
Nico Schottelius
6c895c583a
netpfga: always emit on port1
2019-06-03 21:27:07 +02:00
Nico Schottelius
61b807bd2e
++doc ++setup egress
2019-05-26 11:12:49 +02:00
Nico Schottelius
fa254011e6
++notes
2019-05-26 10:58:35 +02:00
Nico Schottelius
880c228a76
++ notes
2019-05-25 14:18:06 +02:00
Nico Schottelius
4059701f63
++netfpga logs
2019-05-20 11:12:48 +02:00
Nico Schottelius
533ae3e080
++ log netpfga
2019-05-18 15:33:21 +02:00
Nico Schottelius
5592d45e7b
++notes
2019-05-10 23:28:24 +02:00
Nico Schottelius
7be9c01b48
stop processing v6 when matching for nat64 session
2019-05-06 12:50:45 +02:00
Nico Schottelius
0525f2b4b5
[dummy commit]
2019-05-06 12:19:26 +02:00
Nico Schottelius
b0b9cd7461
[controller] insert 6->4 session
2019-05-06 12:16:22 +02:00
Nico Schottelius
b972accc73
[refactor] nat64 now - not only static mapping anymore
2019-05-05 13:48:05 +02:00
Nico Schottelius
02fc065c1d
Begin adding session tables, debug infos
2019-05-02 13:54:31 +02:00
Nico Schottelius
879abe94c2
update doc
2019-04-21 12:24:15 +02:00
Nico Schottelius
079699c687
++update
...
Signed-off-by: Nico Schottelius <nico@nico-notebook.schottelius.org>
2019-04-11 10:57:30 +02:00
Nico Schottelius
bf59808806
Add checksums for udp_6, udp_v4, tcp_v6, tcp_v4
2019-04-11 10:08:11 +02:00
Nico Schottelius
6c3393e941
next steps, use noaction to avoid clone3() and breaking ndp
2019-04-08 15:59:28 +02:00
Nico Schottelius
8547bf76c9
++doc update
...
Signed-off-by: Nico Schottelius <nico@nico-notebook.schottelius.org>
2019-04-03 12:52:17 +02:00
Nico Schottelius
fc5e56e809
Add ping4 test from ipv4 host
2019-04-03 12:50:19 +02:00
Nico Schottelius
71d1e86d3f
Setup the cast_length in icmp->icmp6 translations
2019-04-03 12:44:00 +02:00
Nico Schottelius
9d2f418f78
Remove cloning on table miss
2019-04-03 12:38:55 +02:00
Nico Schottelius
6f4079d0aa
Use the correct egress table (c&p--!)
2019-04-03 12:29:18 +02:00
Nico Schottelius
2c9f4923b6
++notes -remove unused debugging code
2019-04-03 12:02:40 +02:00
Nico Schottelius
74e4e7034b
Trigger ipv4 checksumming after nat64 translation
2019-04-03 11:46:52 +02:00
Nico Schottelius
0f2df2723b
Set mac address based on destination network [HACK]
2019-04-03 11:31:29 +02:00
Nico Schottelius
cb919ef926
Document state
2019-04-03 11:14:57 +02:00
Nico Schottelius
fb02ca1a7f
Set checksum flag for icmp
2019-04-03 10:56:32 +02:00
Nico Schottelius
d87b897069
Add icmp handling / replying
2019-04-03 10:52:25 +02:00
Nico Schottelius
decdb50b2d
++notes
2019-04-02 17:13:40 +02:00
Nico Schottelius
55aab8cc84
Fix test to use correct host
2019-04-02 17:05:53 +02:00
Nico Schottelius
30dcc0af81
Try to outsmart the compiler with the arp table
...
Adressing
p4c --target bmv2 --arch v1model --std p4-16 "../p4src/static-mapping.p4" -o "/home/p4/master-thesis/p4src"
../p4src/static-mapping.p4(366): error: Program is not supported by this target, because table MyIngress.v6_networks has multiple successors
table v6_networks {
^^^^^^^^^^^
Compilation Error
2019-03-31 16:40:44 +02:00
Nico Schottelius
80d2d34ccb
++doc ++clean table
2019-03-31 16:04:05 +02:00
Nico Schottelius
07f0867175
Begin to introduce arp support
2019-03-31 15:48:00 +02:00
Nico Schottelius
badc6c0dd1
Shrink down json for switch
2019-03-31 11:10:52 +02:00
Nico Schottelius
c5a3be5ccf
Remove / replace default route on ipv4 hosts
2019-03-31 10:51:47 +02:00
Nico Schottelius
801b4d818e
Fix total_length by adding 15 bytes
2019-03-30 18:11:04 +01:00
Nico Schottelius
cd3084d8f9
rewrite checksum triggers in ndp/echo reply
2019-03-30 17:19:17 +01:00
Nico Schottelius
74657385b2
Remove unused controller code
2019-03-30 17:14:48 +01:00
Nico Schottelius
33117f0ca8
Remove unused tables
2019-03-30 17:12:34 +01:00
Nico Schottelius
0903d71a49
++ upgrade log
2019-03-30 16:47:40 +01:00
Nico Schottelius
92163d46ef
Begin NAT46 translation of ICMP->ICMP6
2019-03-30 16:35:52 +01:00
Nico Schottelius
7d3acfc06a
++ doc update
2019-03-30 15:06:33 +01:00
Nico Schottelius
f32ad44e0b
Refactor #n: go back to generic entry point, use if in apply{}
2019-03-30 14:59:46 +01:00
Nico Schottelius
3b558f84d1
++ notes
2019-03-27 19:44:25 +01:00
Nico Schottelius
ac96fe467d
Commit sketch tables for reference
2019-03-27 18:59:35 +01:00
Nico Schottelius
12658b23ac
Use an action to do the same thing as before
2019-03-27 18:22:37 +01:00
Nico Schottelius
7d9e9e1cfd
Replace switch in action with multiple if's
...
p4c --target bmv2 --arch v1model --std p4-16 "../p4src/static-mapping.p4" -o "/home/p4/master-thesis/p4src"
../p4src/static-mapping.p4(60): error: SwitchStatement: switch statements not allowed in actions
switch(hdr.icmp6.type) {
^^^^^^
2019-03-27 18:05:59 +01:00
Nico Schottelius
404d4ff0df
Begin checksumming icmp4
2019-03-27 18:01:11 +01:00
Nico Schottelius
e349de5859
Change protocol in case of icmp6->icmp
2019-03-27 13:49:39 +01:00
Your Name
5f946ff6b6
+pcap: static_nat64-2019-03-26-2107-h1.pcap
2019-03-26 21:13:34 +00:00
Nico Schottelius
0540b43f7f
Reorder controller startup
2019-03-26 21:56:32 +01:00
Nico Schottelius
7c3bcceb29
++ notes
2019-03-25 14:37:33 +01:00
Nico Schottelius
9ca4d4c8de
Transport table debug information to controller
2019-03-25 13:43:47 +01:00
Nico Schottelius
236bd8e7d6
Debug send ipv4 packets to controller
2019-03-25 13:09:29 +01:00
Nico Schottelius
c6b1463e17
Debug missing checksum, introduce new field
2019-03-25 13:02:09 +01:00
Nico Schottelius
905f51fba3
Add checksum marker
2019-03-25 12:56:54 +01:00
Nico Schottelius
42f5e00e74
Document double/triple matching
2019-03-25 11:51:36 +01:00
Nico Schottelius
f4372580c4
Begin to write down lpm problem
2019-03-25 11:13:21 +01:00
Nico Schottelius
a408d7a803
+ reorg +add simple nat64 w/o protocol specific translations
2019-03-23 16:20:13 +01:00
Nico Schottelius
4972f550d8
++doc
2019-03-23 15:20:15 +01:00
Nico Schottelius
4d610a5cb5
Remove unecessary arg to icmp6_echo_reply
2019-03-23 15:14:17 +01:00
Nico Schottelius
4d3641fc50
Also add required icmp6_type
2019-03-23 15:07:07 +01:00
Nico Schottelius
5f14967a32
Introduce the icmp6 table
2019-03-23 15:03:42 +01:00
Nico Schottelius
162ef20072
Checksum the newly parsed fields
2019-03-23 14:39:56 +01:00
Nico Schottelius
63deff0a5c
+logtrail
2019-03-23 14:31:27 +01:00
Nico Schottelius
f79033c0c9
Parse down to icmp6_na_ns
2019-03-23 13:33:25 +01:00
Nico Schottelius
ece52e4915
++ sniff-host command
2019-03-21 20:36:01 +01:00
Nico Schottelius
87d4154753
Rename test && fix return
2019-03-20 00:04:21 +01:00
Nico Schottelius
c89441001b
try 42: ndp in the switch. this episode is with checksums...
2019-03-19 23:49:49 +01:00
Nico Schottelius
2a623a0807
++ info ++ link local
2019-03-19 23:21:40 +01:00
Nico Schottelius
4c9573d8e0
++notes
2019-03-19 23:03:10 +01:00
Nico Schottelius
880db528e7
Mute multicast registrations (MLDv2)
2019-03-19 23:01:55 +01:00
Nico Schottelius
809110edc7
Debug print to controller by default, not dropping
2019-03-19 21:03:10 +01:00
Nico Schottelius
602c52d8bb
Add first test in test.py
2019-03-14 20:19:50 +01:00
Nico Schottelius
74f5575cd0
Reduce routing size for testing
2019-03-14 17:26:40 +01:00
Nico Schottelius
1dd33177f1
eUpdate prefix/network for mapped v4 network
2019-03-14 14:56:52 +01:00
Nico Schottelius
7c8f019b2a
++ nat64 update, discussion update
2019-03-14 14:37:45 +01:00
Nico Schottelius
b5cd3aeb0e
doc + gitignore for p4src
2019-03-14 14:12:50 +01:00