29 lines
604 B
Plaintext
29 lines
604 B
Plaintext
// Inputs provided by control-plane
|
|
action set_next_hop(bit<32> next_hop) {
|
|
if (next_hop == 0) {
|
|
metadata.next_hop = hdr.ipv4.dst;
|
|
} else {
|
|
metadata.next_hop = next_hop;
|
|
}
|
|
}
|
|
|
|
// Inputs provided by data-plane
|
|
action swap_mac(inout bit<48> x,
|
|
inout bit<48> y) {
|
|
bit<48> tmp = x;
|
|
x = y;
|
|
y = tmp;
|
|
}
|
|
|
|
// Inputs provided by control/data-plane
|
|
action forward(in bit<9> p, bit<48> d) {
|
|
standard_metadata.egress_spec = p;
|
|
headers.ethernet.dstAddr = d;
|
|
}
|
|
|
|
// Remove header from packet
|
|
action decap_ip_ip() {
|
|
hdr.ipv4 = hdr.inner_ipv4;
|
|
hdr.inner_ipv4.setInvalid();
|
|
}
|