60 lines
923 B
Text
60 lines
923 B
Text
#include "headers.p4"
|
|
|
|
parser ParserImpl(
|
|
packet_in packet,
|
|
out Headers hdr
|
|
) {
|
|
state start {
|
|
transition select(packet.lookahead<bit<16>>()) {
|
|
16w0x0800: parse_ethernet;
|
|
default: reject;
|
|
}
|
|
}
|
|
|
|
state parse_ethernet {
|
|
packet.extract(hdr.ethernet);
|
|
transition accept;
|
|
}
|
|
}
|
|
|
|
parser BackupParser(packet_in packet, out Headers hdr) {
|
|
state start {
|
|
transition accept;
|
|
}
|
|
}
|
|
|
|
control
|
|
Ingress(
|
|
inout Headers hdr
|
|
) {
|
|
action set_port() {
|
|
helper();
|
|
}
|
|
|
|
action helper() {
|
|
}
|
|
|
|
table route {
|
|
key = {
|
|
hdr.ethernet.dst_addr: exact;
|
|
}
|
|
actions = {
|
|
set_port;
|
|
}
|
|
}
|
|
|
|
apply {
|
|
route.apply();
|
|
set_port();
|
|
missing_action();
|
|
}
|
|
}
|
|
|
|
control Egress(inout Headers hdr) {
|
|
action set_port() {
|
|
}
|
|
|
|
apply {
|
|
set_port();
|
|
}
|
|
}
|