[netpfga] re-introduce old parser, rename variables

This commit is contained in:
Nico Schottelius 2019-07-23 16:06:18 +02:00
parent 1be73a0e50
commit e6951c6210
1 changed files with 46 additions and 36 deletions

View File

@ -45,23 +45,24 @@ struct digest_data_t {
// out user_metadata_t user_metadata, // out user_metadata_t user_metadata,
// out digest_data_t digest_data, // out digest_data_t digest_data,
// inout sume_metadata_t sume_metadata) { // inout sume_metadata_t sume_metadata) {
// state start {
// b.extract(p.ethernet);
// user_metadata.unused = 0;
// digest_data.unused = 0;
// transition accept;
// }
// } // }
@Xilinx_MaxPacketRegion(1024) @Xilinx_MaxPacketRegion(1024)
parser TopParser(packet_in packet, parser TopParser(packet_in packet,
out headers hdr, out headers hdr,
out metadata meta, // out metadata meta,
out user_metadata_t user_metadata,
out digest_data_t digest_data, out digest_data_t digest_data,
inout sume_metadata_t standard_metadata) { inout sume_metadata_t standard_metadata) {
state start {
packet.extract(hdr.ethernet);
user_metadata.unused = 0;
digest_data.unused = 0;
#include "parsers.p4" transition accept;
}
// #include "parsers.p4"
} }
@ -87,6 +88,8 @@ control TopPipe(inout headers hdr,
// #include "actions_arp.p4" // includes v4_arp, v4_egress // #include "actions_arp.p4" // includes v4_arp, v4_egress
// #include "actions_delta_checksum.p4" // non payload based checksumming // #include "actions_delta_checksum.p4" // non payload based checksumming
// apply { // apply {
// if(hdr.ipv6.isValid()) { // if(hdr.ipv6.isValid()) {
// if(nat64.apply().hit) { /* generic / static nat64 done */ // if(nat64.apply().hit) { /* generic / static nat64 done */
@ -168,30 +171,37 @@ control TopPipe(inout headers hdr,
// } // }
action swap_eth_addresses() { action swap_eth_addresses() {
EthAddr_t temp = hdr.ethernet.dst_addr; EthAddr_t temp = hdr.ethernet.dst_addr;
hdr.ethernet.dst_addr = hdr.ethernet.src_addr; hdr.ethernet.dst_addr = hdr.ethernet.src_addr;
hdr.ethernet.src_addr = temp; hdr.ethernet.src_addr = temp;
/* set egress port */ /* set egress port */
sume_metadata.dst_port = sume_metadata.src_port; sume_metadata.dst_port = sume_metadata.src_port;
} }
action send_to_port1() { action send_to_port1() {
sume_metadata.dst_port = 1; sume_metadata.dst_port = 1;
} }
action send_to_all_ports() { // action send_testdata_to_port1() {
/* Taken from commands.txt of the "int" project: // // python: MAC2 = "08:22:22:22:22:08"
table_cam_add_entry forward set_output_port 0xffffffffffff => 0b01010101 // if(hdr.ethernet.dst_addr == 0x082222222208) {
// sume_metadata.dst_port = 1;
// }
// }
python convert: action send_to_all_ports() {
>>> 0b01010101 /* Taken from commands.txt of the "int" project:
85 table_cam_add_entry forward set_output_port 0xffffffffffff => 0b01010101
*/ python convert:
sume_metadata.dst_port = 85; >>> 0b01010101
} 85
*/
sume_metadata.dst_port = 85;
}
action do_nothing() { action do_nothing() {
EthAddr_t temp = hdr.ethernet.dst_addr; EthAddr_t temp = hdr.ethernet.dst_addr;
@ -239,17 +249,17 @@ control TopDeparser(packet_out packet,
// @Xilinx_MaxPacketRegion(1024) // @Xilinx_MaxPacketRegion(1024)
// control TopDeparser(packet_out b, // control TopDeparser(packet_out b,
// in Parsed_packet p, // in Parsed_packet p,
// in user_metadata_t user_metadata, // in user_metadata_t user_metadata,
// inout digest_data_t digest_data, // inout digest_data_t digest_data,
// inout sume_metadata_t sume_metadata) { // inout sume_metadata_t sume_metadata) {
// apply { apply {
// packet.emit(hdr.ethernet); packet.emit(hdr.ethernet);
// } }
#include "deparser.p4" // #include "deparser.p4"
} }