Fix minor bugs in INT sink
Change-Id: I69bf7e9c5cbf2ab4750b17ab430de00423d7290c
(cherry picked from commit ac96e5bd21df90c689724421439c600927c6ba18)
diff --git a/pipelines/fabric/impl/src/main/resources/include/int/int_main.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_main.p4
index c1368d8..7c515a5 100644
--- a/pipelines/fabric/impl/src/main/resources/include/int/int_main.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/int/int_main.p4
@@ -86,7 +86,7 @@
if(fabric_metadata.int_meta.sink == _TRUE) {
// FIXME: this works only on BMv2
#ifdef __TARGET_BMV2__
- clone(CloneType.I2E, REPORT_MIRROR_SESSION_ID);
+ clone3(CloneType.I2E, REPORT_MIRROR_SESSION_ID, {standard_metadata.ingress_port});
#endif
}
#endif // WITH_INT_SINK
diff --git a/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4
index aaec185..1e85705 100644
--- a/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4
@@ -50,6 +50,7 @@
hdr.report_ethernet.setValid();
hdr.report_ethernet.dst_addr = mon_mac;
hdr.report_ethernet.src_addr = src_mac;
+ hdr.report_eth_type.setValid();
hdr.report_eth_type.value = ETHERTYPE_IPV4;
//Report IPV4 Header
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
index 8e85366..6dd6ac2 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
@@ -681,7 +681,18 @@
{
"id" : 2,
"name" : "fl_0",
- "elements" : []
+ "source_info" : {
+ "filename" : "include/int/int_main.p4",
+ "line" : 89,
+ "column" : 60,
+ "source_fragment" : "{standard_metadata.ingress_port}"
+ },
+ "elements" : [
+ {
+ "type" : "field",
+ "value" : ["standard_metadata", "ingress_port"]
+ }
+ ]
}
],
"errors" : [
@@ -6116,7 +6127,7 @@
"filename" : "include/int/int_main.p4",
"line" : 89,
"column" : 12,
- "source_fragment" : "clone(CloneType.I2E, REPORT_MIRROR_SESSION_ID)"
+ "source_fragment" : "clone3(CloneType.I2E, REPORT_MIRROR_SESSION_ID, {standard_metadata.ingress_port})"
}
}
]
@@ -13492,6 +13503,21 @@
}
},
{
+ "op" : "add_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "report_eth_type"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/int/int_report.p4",
+ "line" : 53,
+ "column" : 8,
+ "source_fragment" : "hdr.report_eth_type.setValid()"
+ }
+ },
+ {
"op" : "assign",
"parameters" : [
{
@@ -13520,7 +13546,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 56,
+ "line" : 57,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.setValid()"
}
@@ -13539,7 +13565,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 57,
+ "line" : 58,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.version = 4w4"
}
@@ -13558,7 +13584,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 58,
+ "line" : 59,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.ihl = 4w5"
}
@@ -13577,7 +13603,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 59,
+ "line" : 60,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.dscp = 6w0"
}
@@ -13596,7 +13622,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 60,
+ "line" : 61,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.ecn = 2w0"
}
@@ -13638,7 +13664,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 62,
+ "line" : 63,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.total_len = (bit<16>) IPV4_MIN_HEAD_LEN + (bit<16>) UDP_HEADER_LEN + ..."
}
@@ -13657,7 +13683,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 65,
+ "line" : 66,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.identification = 0"
}
@@ -13676,7 +13702,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 66,
+ "line" : 67,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.flags = 0"
}
@@ -13695,7 +13721,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 67,
+ "line" : 68,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.frag_offset = 0"
}
@@ -13714,7 +13740,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 68,
+ "line" : 69,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.ttl = 0xFF"
}
@@ -13752,7 +13778,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 70,
+ "line" : 71,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.src_addr = src_ip"
}
@@ -13771,7 +13797,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 71,
+ "line" : 72,
"column" : 8,
"source_fragment" : "hdr.report_ipv4.dst_addr = mon_ip"
}
@@ -13786,7 +13812,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 74,
+ "line" : 75,
"column" : 8,
"source_fragment" : "hdr.report_udp.setValid()"
}
@@ -13805,7 +13831,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 75,
+ "line" : 76,
"column" : 8,
"source_fragment" : "hdr.report_udp.sport = 0"
}
@@ -13824,7 +13850,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 76,
+ "line" : 77,
"column" : 8,
"source_fragment" : "hdr.report_udp.dport = mon_port"
}
@@ -13866,7 +13892,7 @@
],
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 77,
+ "line" : 78,
"column" : 8,
"source_fragment" : "hdr.report_udp.len = (bit<16>) UDP_HEADER_LEN + (bit<16>) REPORT_FIXED_HEADER_LEN + ..."
}
@@ -17520,7 +17546,7 @@
"filename" : "include/int/int_main.p4",
"line" : 89,
"column" : 12,
- "source_fragment" : "clone(CloneType.I2E, REPORT_MIRROR_SESSION_ID)"
+ "source_fragment" : "clone3(CloneType.I2E, REPORT_MIRROR_SESSION_ID, {standard_metadata.ingress_port})"
},
"key" : [],
"match_type" : "exact",
@@ -20618,7 +20644,7 @@
"id" : 85,
"source_info" : {
"filename" : "include/int/int_report.p4",
- "line" : 86,
+ "line" : 87,
"column" : 10,
"source_fragment" : "tb_generate_report"
},