Commit Graph

346 Commits

Author SHA1 Message Date
Nico Schottelius cd3084d8f9 rewrite checksum triggers in ndp/echo reply 2019-03-30 17:19:17 +01:00
Nico Schottelius 33117f0ca8 Remove unused tables 2019-03-30 17:12:34 +01:00
Nico Schottelius cb3b1501ef also setter code s/true/1/ 2019-03-30 17:03:06 +01:00
Nico Schottelius ec40bc2c54 s/bool/bit<1>/
Fixing

Invalid entry type 'expression' in field list
bad json:
{
   "type" : "expression",
   "value" : {
      "type" : "expression",
      "value" : {
         "left" : null,
         "op" : "d2b",
         "right" : {
            "type" : "field",
            "value" : [ "scalars", "metadata.chk_icmp6" ]
         }
      }
   }
}
2019-03-30 17:02:18 +01:00
Nico Schottelius d1cc9d2643 Rewrite one check to bit<1> 2019-03-30 17:01:04 +01:00
Nico Schottelius 9f5b9fb0c9 Compare the right field 2019-03-30 16:59:32 +01:00
Nico Schottelius bfd4a35942 Try to find another workaround against json error in the switch
[15:54:38.463] [bmv2] [D] [thread 21721] Set default default entry for table 'MyIngress.nat46': MyIngress.controller_debug_table_id - 4,
[15:54:38.463] [bmv2] [D] [thread 21721] Set default default entry for table 'tbl_act_3': act_3 -
[15:54:38.463] [bmv2] [D] [thread 21721] Set default default entry for table 'tbl_act_4': act_4 -
[15:54:38.463] [bmv2] [D] [thread 21721] Set default default entry for table 'tbl_nat46_icmp_generic': MyIngress.nat46_icmp_generic -
[15:54:38.463] [bmv2] [D] [thread 21721] Set default default entry for table 'tbl_act_5': act_5 -
[15:54:38.463] [bmv2] [D] [thread 21721] Set default default entry for table 'tbl_act_6': act_6 -
[15:54:38.463] [bmv2] [D] [thread 21721] Set default default entry for table 'tbl_act_7': act_7 -
Invalid entry type 'expression' in field list
bad json:
{
   "type" : "expression",
   "value" : {
      "type" : "expression",
      "value" : {
         "left" : null,
         "op" : "d2b",
         "right" : {
            "type" : "field",
            "value" : [ "scalars", "metadata.chk_icmp6_na_ns" ]
         }
      }
   }
}

p4@ubuntu:~/master-thesis/p4app$
2019-03-30 16:57:57 +01:00
Nico Schottelius 78308a00ee v6: next_header 2019-03-30 16:54:19 +01:00
Nico Schottelius dae3d5ce30 + { 2019-03-30 16:53:20 +01:00
Nico Schottelius f57f15a9cb Cleanup tables++ 2019-03-30 16:51:34 +01:00
Nico Schottelius d5312dd04c Change table name 2019-03-30 16:50:17 +01:00
Nico Schottelius 92163d46ef Begin NAT46 translation of ICMP->ICMP6 2019-03-30 16:35:52 +01:00
Nico Schottelius 881643e2c3 +chk_ prefix 2019-03-30 15:01:24 +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 432965eb4f Reordering actions... 2019-03-27 20:15:31 +01:00
Nico Schottelius b87b7b72f6 Action definition order matters... 2019-03-27 20:12:56 +01:00
Nico Schottelius f52522fe0c Correct typo / rename bug 2019-03-27 20:11:41 +01:00
Nico Schottelius b12d5d41ee Resolve name conflict 2019-03-27 20:08:49 +01:00
Nico Schottelius d6264a32a4 Add code to mimic if in action
New table logic, new actions
2019-03-27 19:43:49 +01:00
Nico Schottelius ac96fe467d Commit sketch tables for reference 2019-03-27 18:59:35 +01:00
Nico Schottelius c551b944f8 Remove outter if action call 2019-03-27 18:25:56 +01:00
Nico Schottelius 9a5571fc39 Remove inner if 2019-03-27 18:25:05 +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 aa1b316767 + block in swtich 2019-03-27 18:02:42 +01:00
Nico Schottelius 404d4ff0df Begin checksumming icmp4 2019-03-27 18:01:11 +01:00
Your Name 31c86b2e7c Actually call() the function! 2019-03-27 13:13:04 +00:00
Your Name 907f677e2d Use if instead of switch 2019-03-27 13:09:27 +00:00
Nico Schottelius 01d9305350 Move def of nat64_icmp6 prior to use 2019-03-27 13:55:07 +01:00
Nico Schottelius e349de5859 Change protocol in case of icmp6->icmp 2019-03-27 13:49:39 +01:00
Nico Schottelius c1953aab5c Re-enable standard IPv4 processing 2019-03-27 13:32:14 +01:00
Nico Schottelius f59c35c41b setValid() before filling in the values 2019-03-27 13:26:50 +01:00
Nico Schottelius 29296a30e4 verify again 2019-03-26 22:16:53 +01:00
Nico Schottelius 74420d8bbd Uncomment region to check flow 2019-03-26 22:13:17 +01:00
Nico Schottelius 658227cd5b Clarify execution order in nat64/nat46 case 2019-03-26 22:06:35 +01:00
Nico Schottelius e48abdb254 Use symbolic names in debugging 2019-03-25 14:28:36 +01:00
Nico Schottelius 764245a914 Add table_id info to the NAT* tables 2019-03-25 14:16:14 +01:00
Nico Schottelius 1c1eeaf46e + table id bit width 2019-03-25 14:04:11 +01:00
Nico Schottelius f25d98503f Correct field width 2019-03-25 14:03:04 +01:00
Nico Schottelius 1e9ba58148 +; 2019-03-25 14:00:22 +01:00
Nico Schottelius 1e95278eb7 Try to use default action with parameter 2019-03-25 13:57:09 +01:00
Nico Schottelius f965942dd5 Add action to action list 2019-03-25 13:51:08 +01:00
Nico Schottelius 976397379d Try to use function parameter in default_action 2019-03-25 13:50:29 +01:00
Nico Schottelius f0fc4bcf0e +; 2019-03-25 13:44:31 +01:00
Nico Schottelius 9ca4d4c8de Transport table debug information to controller 2019-03-25 13:43:47 +01:00
Nico Schottelius b5524b636f Order matters in function definition 2019-03-25 13:13:02 +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 6e40043c71 +, 2019-03-25 12:13:10 +01:00
Nico Schottelius 4a280716a6 Rewrite code to use unique destination networks 2019-03-25 12:11:20 +01:00
Nico Schottelius d0f4f11aaa Enable NAT64/NAT46 in apply block 2019-03-23 16:25:12 +01:00
Nico Schottelius 25fd78c900 Add table constant 2019-03-23 16:22:48 +01:00
Nico Schottelius a408d7a803 + reorg +add simple nat64 w/o protocol specific translations 2019-03-23 16:20:13 +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 5dec26d957 Update meta.task field for checksumming 2019-03-23 14:41:32 +01:00
Nico Schottelius 162ef20072 Checksum the newly parsed fields 2019-03-23 14:39:56 +01:00
Nico Schottelius 39c280cd33 Correct state parser to match on icmp6.type 2019-03-23 14:30:20 +01:00
Nico Schottelius 22538a93c9 Update deparser type, add emitting of option field 2019-03-23 14:20:11 +01:00
Nico Schottelius 9f5a37f7f6 Prepare switch for fully answering NDP/NS query
Including parser which might be broken in case there are no options present
2019-03-23 14:15:31 +01:00
Nico Schottelius f79033c0c9 Parse down to icmp6_na_ns 2019-03-23 13:33:25 +01:00
Nico Schottelius 7db850a731 [p4] remove "rest" type 2019-03-21 20:48:56 +01:00
Nico Schottelius 5781d26541 add icmp6_ns to v6_networks table 2019-03-19 23:53:42 +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 492888fd2f s/layer/field/ 2019-03-19 23:23:54 +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 1e04446398 Cast the result 2019-03-14 14:52:26 +01:00
Nico Schottelius 255973a4c9 Correct address types 2019-03-14 14:41:28 +01:00
Nico Schottelius ab8e328dd3 Order of actions matters 2019-03-14 14:39:17 +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
Nico Schottelius 472a104e2b ++ doc update ++ nat64_static / P4 begin 2019-03-14 14:05:17 +01:00
Nico Schottelius 81bf368279 [p4] try to include type+code in the checksum part 2019-03-07 00:33:41 +01:00
Nico Schottelius aca088094e Re-add tcp_length 2019-03-06 19:39:20 +01:00
Nico Schottelius 260857b457 Remove unused meta field 2019-03-06 19:38:13 +01:00
Nico Schottelius bd86fb4bc5 Fix the ingrees part 2019-03-06 19:37:29 +01:00
Nico Schottelius a25da0f0df Try to shrink down bool bug code 2019-03-06 19:33:24 +01:00
Nico Schottelius 7495061f9d Try to include ingress casted value in checksumming 2019-03-06 17:38:43 +01:00
Nico Schottelius ee62eb32c3 ++notes; try to cast & save payload_length in ingress 2019-03-06 17:37:30 +01:00
Nico Schottelius 3651ec4bc5 Remove unfinished code 2019-03-06 15:16:44 +01:00
Nico Schottelius 591175db7a Re-re-re-try to do checkumming based on a meta field 2019-03-06 15:15:46 +01:00
Nico Schottelius 6497db857c & remove checksumming again 2019-03-06 13:59:41 +01:00
Nico Schottelius 6f3bd8773b ... try reenabling checksumming in P4 2019-03-06 13:54:22 +01:00
Nico Schottelius e9b08d638c s/bool/bit/ 2019-03-06 13:51:45 +01:00
Nico Schottelius 6dc5f34d43 s/ .. -> do_cksum 2019-03-06 13:51:06 +01:00
Nico Schottelius 8913cb8c3a Still getting json error, trying to short variable name 2019-03-06 13:50:03 +01:00
Nico Schottelius 6765b878c2 [p4] Disable checksum code again
To make the switch compile. Current error:

*** Starting 2 switches
s1 Starting P4 switch s1.
simple_switch -i 1@s1-eth1 -i 2@s1-eth2 -i 3@s1-eth3 -i 4@s1-eth4 -i 5@s1-cpu-eth0 --pcap=/home/p4/master-thesis/p4app/pcap --thrift-port 9090 --nanolog ipc:///tmp/bm-1-log.ipc --device-id 1 ../p4src/static-mapping.json --log-console >/home/p4/master-thesis/p4app/log/s1.log
P4 switch s1 did not start correctly. Check the switch log file.
p4@ubuntu:~/master-thesis/p4app$ cat /home/p4/master-thesis/p4app/log/s1.log
Warning: you requested the nanomsg event logger, but bmv2 was compiled without -DBMELOG, and the event logger cannot be activated
Calling target program-options parser
[12:24:10.407] [bmv2] [D] [thread 13263] Set default default entry for table 'MyIngress.v6_addresses': NoAction -
[12:24:10.407] [bmv2] [D] [thread 13263] Set default default entry for table 'MyIngress.v6_networks': NoAction -
[12:24:10.407] [bmv2] [D] [thread 13263] Set default default entry for table 'MyIngress.v4_networks': NoAction -
[12:24:10.408] [bmv2] [D] [thread 13263] Set default default entry for table 'tbl_act': act -
Invalid entry type 'expression' in field list
bad json:
{
   "type" : "expression",
   "value" : {
      "type" : "expression",
      "value" : {
         "left" : null,
         "op" : "d2b",
         "right" : {
            "type" : "field",
            "value" : [ "scalars", "metadata.calc_icmp6_checksum" ]
         }
      }
   }
}

p4@ubuntu:~/master-thesis/p4app$
2019-03-06 13:48:24 +01:00
Nico Schottelius b0f3f5ea85 Try implicit cast by prepending 16 0 bits 2019-03-06 13:23:41 +01:00
Nico Schottelius 25f80b1b76 Try moving the cast to ingrees 2019-03-06 13:19:10 +01:00
Nico Schottelius 1b95179fc5 -typo 2019-03-06 13:13:01 +01:00
Nico Schottelius 0ca0b94b1c +notes; Try shifting the cast into the parser 2019-03-06 13:12:06 +01:00
Nico Schottelius 0bd12260c6 Re-introduce checksumming in p4 2019-03-05 22:42:51 +01:00
Nico Schottelius 2c3db11c80 +6 2019-03-05 22:33:03 +01:00
Nico Schottelius 8832069536 +-comment 2019-03-05 22:32:31 +01:00
Nico Schottelius 5620add27f Phasing in icmp6 in the switch 2019-03-05 22:31:05 +01:00
Nico Schottelius 45e2bd4237 Disable checksumming in the switch 2019-03-05 21:53:27 +01:00
Nico Schottelius 59655e0d32 Include correct offset AND debug info 2019-03-04 18:54:00 +01:00
Nico Schottelius 77b21207b9 Fix task width 2019-03-04 18:19:01 +01:00
Nico Schottelius bc63f5edcf Bitwidth change / adjust 2019-03-04 18:13:34 +01:00
Nico Schottelius 8448e5121b Fix bitwidth 2019-03-04 18:11:08 +01:00
Nico Schottelius 1dd9542168 Also expose ingrees port to controller 2019-03-04 18:10:24 +01:00
Nico Schottelius 60a3c8d8c5 include ether type in cpu package 2019-03-04 18:05:56 +01:00
Nico Schottelius 5bcf328509 refactor 2019-03-04 16:38:45 +01:00
Nico Schottelius 542b4ddd50 rename to v4networks 2019-03-04 16:38:06 +01:00
Nico Schottelius 91f2788778 re-import tcp_length 2019-03-04 16:25:21 +01:00
Nico Schottelius cfa3e3ecbc refactor 2019-03-04 16:24:37 +01:00
Nico Schottelius ea1873c14c Use types for signalling expected action 2019-03-04 16:23:28 +01:00
Nico Schottelius 6f83eeddb2 Keep packet type correct for multicast / ndp 2019-03-04 14:27:12 +01:00
Nico Schottelius 28b2bc46f2 Test debug function 2019-03-04 14:22:36 +01:00
Nico Schottelius 4e8da01250 Setup ethertype in egress control 2019-03-04 14:15:44 +01:00
Nico Schottelius 03ffe73957 [icmp6] v6_networks table add actions 2019-03-04 14:10:11 +01:00
Nico Schottelius f2cd835ced [p4] refactor 2019-03-04 14:08:09 +01:00
Nico Schottelius 0fa70432d1 [icmp6] forward NDP multicast to controller in correct fashion 2019-03-04 14:07:05 +01:00
Nico Schottelius 165f0e6b98 [p4] typo 2019-03-04 13:53:14 +01:00
Nico Schottelius 4c331dc296 adjust table/action 2019-03-03 22:37:58 +01:00
Nico Schottelius 7f1e9f6252 Begin icmp6 in controller -> pass special info 2019-03-03 22:36:25 +01:00
Nico Schottelius b3e51d550a [p4] icmp6 hard code length 2019-02-28 11:09:45 +01:00
Nico Schottelius 1f497982b3 [p4] try casting before 2019-02-28 11:06:11 +01:00
Nico Schottelius 21d1b82416 [p4+plan] Try casting payload length to 32 2019-02-28 11:03:01 +01:00
Nico Schottelius b01341f48c [p4] correct action name 2019-02-28 10:57:00 +01:00
Nico Schottelius b29cf1a296 [p4, controller] hack NDP reply 2019-02-28 10:56:22 +01:00
Nico Schottelius 11d376bcb8 [p4] add controller action 2019-02-26 15:54:41 +01:00
Nico Schottelius 0ea9e708de [p4] If non matching ndp -> escalate to controller 2019-02-26 15:53:48 +01:00
Nico Schottelius 67afa855d0 [NDP] apply table... 2019-02-26 15:33:37 +01:00
Nico Schottelius 72c600d8da [NDP] Begin to add multicast / NDP support 2019-02-26 15:30:47 +01:00
Nico Schottelius 949560c995 [controller,p4] add debug print into controller 2019-02-24 15:53:10 +01:00
Nico Schottelius e8e33c78ea [p4] --typo 2019-02-23 21:15:47 +01:00
Nico Schottelius 67bf3878d0 [p4] update parser to emit all (potentially] modified headers 2019-02-23 21:15:10 +01:00
Nico Schottelius 3fecfad989 [p4] +, 2019-02-23 21:07:05 +01:00
Nico Schottelius a5c8be40be [p4] begin icmp6 checksum 2019-02-23 21:05:46 +01:00
Nico Schottelius c38eb0dfc4 [p4,controller] Begin to add icmp6 echo reply support + more NDP "fixes" 2019-02-23 19:52:01 +01:00
Nico Schottelius d3e4f920cf [p4] apply table 2019-02-23 18:59:46 +01:00
Nico Schottelius c4a4e370f0 ++todos; begin router mode 2019-02-23 18:58:04 +01:00
Nico Schottelius 858e8bf448 [P4] fix routing table size 2019-02-23 14:31:19 +01:00
Nico Schottelius 368ad03792 [P4] only apply tables on valid headers 2019-02-23 14:29:36 +01:00
Nico Schottelius bec7dc548e Begin to implement egress handling, make controller usable, update notes 2019-02-23 14:22:46 +01:00
Nico Schottelius 214ccd4479 +headers +parsers [udp, icmp, icmp6] 2019-02-22 00:01:53 +01:00
Nico Schottelius 8bc292564e ++todos ++proto 2019-02-21 23:48:04 +01:00
Nico Schottelius b795374efb Add tcp_length 2019-02-21 23:27:55 +01:00
Nico Schottelius 64109ce917 +metadata struct 2019-02-21 23:25:27 +01:00
Nico Schottelius 3f15fc6fb4 header cleanup 2019-02-21 23:23:30 +01:00
Nico Schottelius b6bd281c3a create P4 basis + smaller updates
Signed-off-by: Nico Schottelius <nico@nico-notebook.schottelius.org>
2019-02-21 23:19:17 +01:00
Nico Schottelius 7f904bdcef [P4] basic headers 2019-02-21 23:11:02 +01:00
Nico Schottelius d20c8a0a8b [P4] basic parser 2019-02-21 23:09:03 +01:00