[ONOS-7654] Fix int.p4 to correctly specify src/sink
Change-Id: I298dee9eb7f85aa9467dae70c63c04c4b7bdd660
diff --git a/pipelines/basic/src/main/resources/int.p4 b/pipelines/basic/src/main/resources/int.p4
index 5a8d23a..a452759 100644
--- a/pipelines/basic/src/main/resources/int.p4
+++ b/pipelines/basic/src/main/resources/int.p4
@@ -32,7 +32,7 @@
#include "include/int_transit.p4"
#include "include/int_sink.p4"
-control int_ingress (
+control ingress (
inout headers_t hdr,
inout local_metadata_t local_metadata,
inout standard_metadata_t standard_metadata) {
@@ -41,11 +41,10 @@
port_counters_ingress.apply(hdr, standard_metadata);
packetio_ingress.apply(hdr, standard_metadata);
table0_control.apply(hdr, local_metadata, standard_metadata);
- process_set_source_sink.apply(hdr, local_metadata, standard_metadata);
}
}
-control int_egress (
+control egress (
inout headers_t hdr,
inout local_metadata_t local_metadata,
inout standard_metadata_t standard_metadata) {
@@ -54,15 +53,18 @@
if (standard_metadata.ingress_port != CPU_PORT &&
standard_metadata.egress_port != CPU_PORT &&
(hdr.udp.isValid() || hdr.tcp.isValid())) {
- if (local_metadata.int_meta.sink == 0 && local_metadata.int_meta.source == 1) {
+ process_set_source_sink.apply(hdr, local_metadata, standard_metadata);
+ if (local_metadata.int_meta.source == 1) {
process_int_source.apply(hdr, local_metadata, standard_metadata);
}
if(hdr.int_header.isValid()) {
process_int_transit.apply(hdr, local_metadata, standard_metadata);
// update underlay header based on INT information inserted
process_int_outer_encap.apply(hdr, local_metadata, standard_metadata);
- // int sink
- process_int_sink.apply(hdr, local_metadata, standard_metadata);
+ if (local_metadata.int_meta.sink == 1) {
+ // int sink
+ process_int_sink.apply(hdr, local_metadata, standard_metadata);
+ }
}
}
port_counters_egress.apply(hdr, standard_metadata);
@@ -73,8 +75,8 @@
V1Switch(
int_parser(),
verify_checksum_control(),
- int_ingress(),
- int_egress(),
+ ingress(),
+ egress(),
compute_checksum_control(),
int_deparser()
) main;
\ No newline at end of file