From 79067baf127c4688d9de5afb744c06df2b814c0d Mon Sep 17 00:00:00 2001 From: r12f Date: Tue, 13 Feb 2024 01:53:58 +0000 Subject: [PATCH 1/3] fast path SAI API generation. --- dash-pipeline/bmv2/dash_metadata.p4 | 2 ++ dash-pipeline/bmv2/dash_pipeline.p4 | 31 +++++++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/dash-pipeline/bmv2/dash_metadata.p4 b/dash-pipeline/bmv2/dash_metadata.p4 index 9d03f132b..f0e87faf6 100644 --- a/dash-pipeline/bmv2/dash_metadata.p4 +++ b/dash-pipeline/bmv2/dash_metadata.p4 @@ -72,6 +72,8 @@ struct metadata_t { bit<16> meter_class; bit<32> meter_bucket_index; bit<16> tunnel_pointer; + bool is_fast_path_icmp_flow_redirection_packet; + bit<1> fast_path_icmp_flow_redirection_disabled; } #endif /* _SIRIUS_METADATA_P4_ */ diff --git a/dash-pipeline/bmv2/dash_pipeline.p4 b/dash-pipeline/bmv2/dash_pipeline.p4 index deb46b906..5b7c01865 100644 --- a/dash-pipeline/bmv2/dash_pipeline.p4 +++ b/dash-pipeline/bmv2/dash_pipeline.p4 @@ -10,6 +10,8 @@ #include "dash_conntrack.p4" #include "underlay.p4" +#define MAX_ENI 64 + control dash_ingress( inout headers_t hdr , inout metadata_t meta @@ -38,6 +40,11 @@ control dash_ingress( action accept() { } + @SaiCounter[name="lb_fast_path_icmp_in", attr_type="stats"] + counter(1, CounterType.packets_and_bytes) port_lb_fast_path_icmp_in_counter; + @SaiCounter[name="lb_fast_path_eni_miss", attr_type="stats"] + counter(1, CounterType.packets_and_bytes) port_lb_fast_path_eni_miss_counter; + @SaiTable[name = "vip", api = "dash_vip"] table vip { key = { @@ -106,6 +113,9 @@ control dash_ingress( meta.stage4_dash_acl_group_id = ## prefix ##_stage4_dash_acl_group_id; \ meta.stage5_dash_acl_group_id = ## prefix ##_stage5_dash_acl_group_id; + @SaiCounter[name="lb_fast_path_icmp_in", attr_type="stats"] + counter(MAX_ENI, CounterType.packets_and_bytes) eni_lb_fast_path_icmp_in_counter; + action set_eni_attrs(bit<32> cps, bit<32> pps, bit<32> flows, @@ -121,7 +131,8 @@ control dash_ingress( ACL_GROUPS_PARAM(inbound_v4), ACL_GROUPS_PARAM(inbound_v6), ACL_GROUPS_PARAM(outbound_v4), - ACL_GROUPS_PARAM(outbound_v6)) { + ACL_GROUPS_PARAM(outbound_v6), + bit<1> disable_fast_path_icmp_flow_redirection) { meta.eni_data.cps = cps; meta.eni_data.pps = pps; meta.eni_data.flows = flows; @@ -150,6 +161,9 @@ control dash_ingress( } meta.meter_policy_id = v4_meter_policy_id; } + + meta.fast_path_icmp_flow_redirection_disabled = disable_fast_path_icmp_flow_redirection; + eni_lb_fast_path_icmp_in_counter.count((bit<32>)meta.eni_id); } @SaiTable[name = "eni", api = "dash_eni", order=1, isobject="true"] @@ -362,10 +376,18 @@ control dash_ingress( #endif // DPDK_PNA_SEND_TO_PORT_FIX_MERGED #endif // TARGET_DPDK_PNA + if (meta.is_fast_path_icmp_flow_redirection_packet) { + port_lb_fast_path_icmp_in_counter.count(0); + } + if (vip.apply().hit) { /* Use the same VIP that was in packet's destination if it's present in the VIP table */ meta.encap_data.underlay_sip = hdr.u0_ipv4.dst_addr; + } else { + if (meta.is_fast_path_icmp_flow_redirection_packet) { + port_lb_fast_path_eni_miss_counter.count(0); + } } /* If Outer VNI matches with a reserved VNI, then the direction is Outbound - */ @@ -380,7 +402,12 @@ control dash_ingress( hdr.customer_ethernet.src_addr : hdr.customer_ethernet.dst_addr; - eni_ether_address_map.apply(); + if (!eni_ether_address_map.apply().hit) { + if (meta.is_fast_path_icmp_flow_redirection_packet) { + port_lb_fast_path_eni_miss_counter.count(0); + } + } + if (meta.direction == dash_direction_t.OUTBOUND) { tunnel_decap(hdr, meta); } else if (meta.direction == dash_direction_t.INBOUND) { From 08efc7d7899ce8699ca650305b411adaca83140c Mon Sep 17 00:00:00 2001 From: r12f Date: Wed, 14 Feb 2024 18:34:20 +0000 Subject: [PATCH 2/3] Update P4 and tests. --- dash-pipeline/bmv2/dash_pipeline.p4 | 20 +++++++++++++++++-- .../pytest/vnet/test_saithrift_vnet.py | 3 ++- .../fast-path-icmp-flow-redirection.md | 16 +++++++-------- .../functional/ptf/sai_dash_utils.py | 3 ++- test/test-cases/functional/ptf/saidashacl.py | 3 ++- .../functional/ptf/saidashvnet_sanity.py | 3 ++- 6 files changed, 34 insertions(+), 14 deletions(-) diff --git a/dash-pipeline/bmv2/dash_pipeline.p4 b/dash-pipeline/bmv2/dash_pipeline.p4 index 5b7c01865..3617c8a69 100644 --- a/dash-pipeline/bmv2/dash_pipeline.p4 +++ b/dash-pipeline/bmv2/dash_pipeline.p4 @@ -40,10 +40,12 @@ control dash_ingress( action accept() { } +#ifdef TARGET_BMV2_V1MODEL @SaiCounter[name="lb_fast_path_icmp_in", attr_type="stats"] counter(1, CounterType.packets_and_bytes) port_lb_fast_path_icmp_in_counter; @SaiCounter[name="lb_fast_path_eni_miss", attr_type="stats"] counter(1, CounterType.packets_and_bytes) port_lb_fast_path_eni_miss_counter; +#endif @SaiTable[name = "vip", api = "dash_vip"] table vip { @@ -113,8 +115,10 @@ control dash_ingress( meta.stage4_dash_acl_group_id = ## prefix ##_stage4_dash_acl_group_id; \ meta.stage5_dash_acl_group_id = ## prefix ##_stage5_dash_acl_group_id; - @SaiCounter[name="lb_fast_path_icmp_in", attr_type="stats"] +#ifdef TARGET_BMV2_V1MODEL + @SaiCounter[name="lb_fast_path_icmp_in", attr_type="stats", action_names="set_eni_attrs"] counter(MAX_ENI, CounterType.packets_and_bytes) eni_lb_fast_path_icmp_in_counter; +#endif action set_eni_attrs(bit<32> cps, bit<32> pps, @@ -163,7 +167,6 @@ control dash_ingress( } meta.fast_path_icmp_flow_redirection_disabled = disable_fast_path_icmp_flow_redirection; - eni_lb_fast_path_icmp_in_counter.count((bit<32>)meta.eni_id); } @SaiTable[name = "eni", api = "dash_eni", order=1, isobject="true"] @@ -377,7 +380,9 @@ control dash_ingress( #endif // TARGET_DPDK_PNA if (meta.is_fast_path_icmp_flow_redirection_packet) { +#ifdef TARGET_BMV2_V1MODEL port_lb_fast_path_icmp_in_counter.count(0); +#endif } if (vip.apply().hit) { @@ -386,7 +391,9 @@ control dash_ingress( meta.encap_data.underlay_sip = hdr.u0_ipv4.dst_addr; } else { if (meta.is_fast_path_icmp_flow_redirection_packet) { +#ifdef TARGET_BMV2_V1MODEL port_lb_fast_path_eni_miss_counter.count(0); +#endif } } @@ -404,7 +411,9 @@ control dash_ingress( if (!eni_ether_address_map.apply().hit) { if (meta.is_fast_path_icmp_flow_redirection_packet) { +#ifdef TARGET_BMV2_V1MODEL port_lb_fast_path_eni_miss_counter.count(0); +#endif } } @@ -448,6 +457,13 @@ control dash_ingress( if (meta.eni_data.admin_state == 0) { deny(); } + + if (meta.is_fast_path_icmp_flow_redirection_packet) { +#ifdef TARGET_BMV2_V1MODEL + eni_lb_fast_path_icmp_in_counter.count((bit<32>)meta.eni_id); +#endif + } + acl_group.apply(); diff --git a/dash-pipeline/tests/saithrift/pytest/vnet/test_saithrift_vnet.py b/dash-pipeline/tests/saithrift/pytest/vnet/test_saithrift_vnet.py index 9fe640004..e39216c9f 100644 --- a/dash-pipeline/tests/saithrift/pytest/vnet/test_saithrift_vnet.py +++ b/dash-pipeline/tests/saithrift/pytest/vnet/test_saithrift_vnet.py @@ -71,7 +71,8 @@ def test_sai_thrift_create_eni(saithrift_client): outbound_v6_stage2_dash_acl_group_id = 0, outbound_v6_stage3_dash_acl_group_id = 0, outbound_v6_stage4_dash_acl_group_id = 0, - outbound_v6_stage5_dash_acl_group_id = 0) + outbound_v6_stage5_dash_acl_group_id = 0, + disable_fast_path_icmp_flow_redirection = 0) assert (eni != SAI_NULL_OBJECT_ID); eam = sai_thrift_eni_ether_address_map_entry_t(switch_id=switch_id, address = eth_addr) diff --git a/documentation/load-bal-service/fast-path-icmp-flow-redirection.md b/documentation/load-bal-service/fast-path-icmp-flow-redirection.md index a9c646a71..a1904e4cd 100644 --- a/documentation/load-bal-service/fast-path-icmp-flow-redirection.md +++ b/documentation/load-bal-service/fast-path-icmp-flow-redirection.md @@ -170,21 +170,21 @@ Port level counter will be added as port stats extensions following the [SAI ext | Attribute name | Description | | -------------- | ----------- | -| SAI_PORT_ATTR_LB_FAST_PATH_ICMP_IN_PKTS | The number of fast path packets received | -| SAI_PORT_ATTR_LB_FAST_PATH_ICMP_IN_BYTES | The total bytes of fast path packets received | -| SAI_PORT_ATTR_LB_FAST_PATH_ENI_MISS_PKTS | The number of fast path packet received but could not find corresponding ENI to process | -| SAI_PORT_ATTR_LB_FAST_PATH_ENI_MISS_BYTES | The total bytes of fast path packet received but could not find corresponding ENI to process | +| SAI_PORT_STAT_LB_FAST_PATH_ICMP_IN_PACKETS | The number of fast path packets received | +| SAI_PORT_STAT_LB_FAST_PATH_ICMP_IN_BYTES | The total bytes of fast path packets received | +| SAI_PORT_STAT_LB_FAST_PATH_ENI_MISS_PACKETS | The number of fast path packet received but could not find corresponding ENI to process | +| SAI_PORT_STAT_LB_FAST_PATH_ENI_MISS_BYTES | The total bytes of fast path packet received but could not find corresponding ENI to process | #### ENI stats attributes | Attribute name | Description | | -------------- | ----------- | -| SAI_ENI_ATTR_LB_FAST_PATH_ICMP_IN_PKTS | The number of fast path packets received | -| SAI_ENI_ATTR_LB_FAST_PATH_ICMP_IN_BYTES | The total bytes of fast path packets received | +| SAI_ENI_STAT_LB_FAST_PATH_ICMP_IN_PACKETS | The number of fast path packets received | +| SAI_ENI_STAT_LB_FAST_PATH_ICMP_IN_BYTES | The total bytes of fast path packets received | #### Flow table stats attributes | Attribute name | Description | | -------------- | ----------- | -| SAI_ENI_ATTR_LB_FAST_PATH_FLOW_REDIRECTED_COUNT | The number of flows that redirected due to fast path packet received | -| SAI_ENI_ATTR_LB_FAST_PATH_FLOW_MISS_COUNT | The number of flows that is missing when trying to redirected by fast path packets | +| SAI_ENI_STAT_LB_FAST_PATH_FLOW_REDIRECTED_COUNT | The number of flows that redirected due to fast path packet received | +| SAI_ENI_STAT_LB_FAST_PATH_FLOW_MISS_COUNT | The number of flows that is missing when trying to redirected by fast path packets | diff --git a/test/test-cases/functional/ptf/sai_dash_utils.py b/test/test-cases/functional/ptf/sai_dash_utils.py index 856ccd46a..6aade86a2 100644 --- a/test/test-cases/functional/ptf/sai_dash_utils.py +++ b/test/test-cases/functional/ptf/sai_dash_utils.py @@ -167,7 +167,8 @@ def eni_create(self, **kwargs): "outbound_v6_stage2_dash_acl_group_id": 0, "outbound_v6_stage3_dash_acl_group_id": 0, "outbound_v6_stage4_dash_acl_group_id": 0, - "outbound_v6_stage5_dash_acl_group_id": 0 + "outbound_v6_stage5_dash_acl_group_id": 0, + "disable_fast_path_icmp_flow_redirection": 0, } default_kwargs.update(kwargs) diff --git a/test/test-cases/functional/ptf/saidashacl.py b/test/test-cases/functional/ptf/saidashacl.py index f779f2b29..6d55365c9 100644 --- a/test/test-cases/functional/ptf/saidashacl.py +++ b/test/test-cases/functional/ptf/saidashacl.py @@ -221,7 +221,8 @@ def setUpSwitch(self): outbound_v6_stage2_dash_acl_group_id=self.out_v6_stage2_acl_group_id, outbound_v6_stage3_dash_acl_group_id=self.out_v6_stage3_acl_group_id, outbound_v6_stage4_dash_acl_group_id=0, - outbound_v6_stage5_dash_acl_group_id=0) + outbound_v6_stage5_dash_acl_group_id=0, + disable_fast_path_icmp_flow_redirection=0) self.eam = sai_thrift_eni_ether_address_map_entry_t( switch_id=self.switch_id, address=self.eni_mac) diff --git a/test/test-cases/functional/ptf/saidashvnet_sanity.py b/test/test-cases/functional/ptf/saidashvnet_sanity.py index 73296af7e..d19d07753 100644 --- a/test/test-cases/functional/ptf/saidashvnet_sanity.py +++ b/test/test-cases/functional/ptf/saidashvnet_sanity.py @@ -103,7 +103,8 @@ def configureVnet(self): outbound_v6_stage2_dash_acl_group_id = 0, outbound_v6_stage3_dash_acl_group_id = 0, outbound_v6_stage4_dash_acl_group_id = 0, - outbound_v6_stage5_dash_acl_group_id = 0) + outbound_v6_stage5_dash_acl_group_id = 0, + disable_fast_path_icmp_flow_redirection = 0) self.eam = sai_thrift_eni_ether_address_map_entry_t(switch_id=self.switch_id, address = self.eni_mac) status = sai_thrift_create_eni_ether_address_map_entry(self.client, From 9da0485c228bc887924e53c0963dead2f441f131 Mon Sep 17 00:00:00 2001 From: r12f Date: Wed, 14 Feb 2024 19:06:08 +0000 Subject: [PATCH 3/3] Update tests. --- dash-pipeline/tests/libsai/vnet_out/vnet_out.cpp | 4 ++++ .../saic/config_bidir_setup_commands.py | 9 ++++++--- .../saic/config_inbound_setup_commands.py | 8 ++++++-- .../saic/config_outbound_setup_commands.json | 6 ++++-- .../saic/sai-api/test_sai_api_vnet_eni.py | 4 +++- .../saic/sai-api/test_sai_api_vnet_in_route.py | 4 +++- .../saic/sai-api/test_sai_api_vnet_out_route.py | 4 +++- ...net_outbound_small_scale_config_via_dpugen.py | 3 ++- ...und_small_scale_config_via_dpugen_create.json | 8 ++++++-- .../scale/saic/test_sai_vnet_outbound_scale.py | 3 ++- .../scale/saic/vnet_inbound_setup_commands.json | 4 +++- .../saic/vnet_outbound_setup_commands_scale.json | 6 ++++-- .../vnet_outbound_setup_commands_simple.json | 3 ++- .../vnet_route_setup_commands_bidirectional.json | 16 ++++++++++++---- ...vnet_route_setup_commands_unidirectional.json | 4 +++- 15 files changed, 63 insertions(+), 23 deletions(-) diff --git a/dash-pipeline/tests/libsai/vnet_out/vnet_out.cpp b/dash-pipeline/tests/libsai/vnet_out/vnet_out.cpp index bc5f27923..f9ddbec60 100644 --- a/dash-pipeline/tests/libsai/vnet_out/vnet_out.cpp +++ b/dash-pipeline/tests/libsai/vnet_out/vnet_out.cpp @@ -189,6 +189,10 @@ int main(int argc, char **argv) attr.value.u32 = 0; attrs.push_back(attr); + attr.id = SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION; + attr.value.booldata = false; + attrs.push_back(attr); + status = dash_eni_api->create_eni(&eni_id, switch_id, attrs.size(), attrs.data()); if (status != SAI_STATUS_SUCCESS) diff --git a/test/test-cases/functional/saic/config_bidir_setup_commands.py b/test/test-cases/functional/saic/config_bidir_setup_commands.py index 776e3fb67..bdbee29f4 100644 --- a/test/test-cases/functional/saic/config_bidir_setup_commands.py +++ b/test/test-cases/functional/saic/config_bidir_setup_commands.py @@ -122,7 +122,8 @@ "SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", - "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0" + "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False" ] }, { @@ -161,7 +162,8 @@ "SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", - "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0" + "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False" ] }, { @@ -200,7 +202,8 @@ "SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", - "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0" + "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False" ] }, diff --git a/test/test-cases/functional/saic/config_inbound_setup_commands.py b/test/test-cases/functional/saic/config_inbound_setup_commands.py index 399e5ec98..93a5aa6bc 100644 --- a/test/test-cases/functional/saic/config_inbound_setup_commands.py +++ b/test/test-cases/functional/saic/config_inbound_setup_commands.py @@ -158,7 +158,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, { @@ -229,7 +231,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, diff --git a/test/test-cases/functional/saic/config_outbound_setup_commands.json b/test/test-cases/functional/saic/config_outbound_setup_commands.json index 4d87713f4..f0c82c2e3 100644 --- a/test/test-cases/functional/saic/config_outbound_setup_commands.json +++ b/test/test-cases/functional/saic/config_outbound_setup_commands.json @@ -96,7 +96,8 @@ "SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", - "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0" + "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False" ] }, { @@ -135,7 +136,8 @@ "SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", - "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0" + "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False" ] }, diff --git a/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_eni.py b/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_eni.py index 2fa7b3d9c..6f88052dd 100644 --- a/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_eni.py +++ b/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_eni.py @@ -93,7 +93,9 @@ def test_vnet_eni_create(self, dpu): "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, ] diff --git a/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_in_route.py b/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_in_route.py index ff3b70e94..8c2ff66de 100644 --- a/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_in_route.py +++ b/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_in_route.py @@ -100,7 +100,9 @@ def test_vnet_inbound_routing_entry_create_setup(self, dpu): "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, ] diff --git a/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_out_route.py b/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_out_route.py index e57be29cc..4c08032a2 100644 --- a/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_out_route.py +++ b/test/test-cases/functional/saic/sai-api/test_sai_api_vnet_out_route.py @@ -99,7 +99,9 @@ def test_vnet_outbound_routing_entry_create(self, dpu): "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, ] diff --git a/test/test-cases/functional/saic/tutorial/test_sai_vnet_outbound_small_scale_config_via_dpugen.py b/test/test-cases/functional/saic/tutorial/test_sai_vnet_outbound_small_scale_config_via_dpugen.py index 328a4dc4e..3992b181c 100755 --- a/test/test-cases/functional/saic/tutorial/test_sai_vnet_outbound_small_scale_config_via_dpugen.py +++ b/test/test-cases/functional/saic/tutorial/test_sai_vnet_outbound_small_scale_config_via_dpugen.py @@ -61,7 +61,8 @@ def make_create_commands(self): conf.generate() ret = add_extra_attrs('SAI_OBJECT_TYPE_ENI', conf.items(), ["SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", 'SAI_ENI_ATTR_PL_SIP', '2001:0db8:85a3:0000:0000:8a2e:0370:7334', 'SAI_ENI_ATTR_PL_SIP_MASK', - '2001:0db8:85a3:0000:0000:0000:0000:0000', 'SAI_ENI_ATTR_PL_UNDERLAY_SIP', '10.0.0.18']) + '2001:0db8:85a3:0000:0000:0000:0000:0000', 'SAI_ENI_ATTR_PL_UNDERLAY_SIP', '10.0.0.18', + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False"]) ret = add_extra_attrs('SAI_OBJECT_TYPE_OUTBOUND_CA_TO_PA_ENTRY', ret, [ 'SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_METER_CLASS', '0', 'SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_METER_CLASS_OVERRIDE', 'True' ]) diff --git a/test/test-cases/functional/saic/tutorial/test_sai_vnet_outbound_small_scale_config_via_dpugen_create.json b/test/test-cases/functional/saic/tutorial/test_sai_vnet_outbound_small_scale_config_via_dpugen_create.json index 7530e7e3f..e30523d9a 100644 --- a/test/test-cases/functional/saic/tutorial/test_sai_vnet_outbound_small_scale_config_via_dpugen_create.json +++ b/test/test-cases/functional/saic/tutorial/test_sai_vnet_outbound_small_scale_config_via_dpugen_create.json @@ -142,7 +142,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, { @@ -213,7 +215,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, { diff --git a/test/test-cases/scale/saic/test_sai_vnet_outbound_scale.py b/test/test-cases/scale/saic/test_sai_vnet_outbound_scale.py index 73d1a96f8..17639274f 100755 --- a/test/test-cases/scale/saic/test_sai_vnet_outbound_scale.py +++ b/test/test-cases/scale/saic/test_sai_vnet_outbound_scale.py @@ -114,7 +114,8 @@ def make_create_vnet_config(self): conf.generate() ret = add_extra_attrs('SAI_OBJECT_TYPE_ENI', conf.items(), ["SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", 'SAI_ENI_ATTR_PL_SIP', '2001:0db8:85a3:0000:0000:8a2e:0370:7334', 'SAI_ENI_ATTR_PL_SIP_MASK', - '2001:0db8:85a3:0000:0000:0000:0000:0000', 'SAI_ENI_ATTR_PL_UNDERLAY_SIP', '10.0.0.18']) + '2001:0db8:85a3:0000:0000:0000:0000:0000', 'SAI_ENI_ATTR_PL_UNDERLAY_SIP', '10.0.0.18', + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False"]) ret = add_extra_attrs('SAI_OBJECT_TYPE_OUTBOUND_CA_TO_PA_ENTRY', ret, [ 'SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_METER_CLASS', '0', 'SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_METER_CLASS_OVERRIDE', 'True' ]) diff --git a/test/test-cases/scale/saic/vnet_inbound_setup_commands.json b/test/test-cases/scale/saic/vnet_inbound_setup_commands.json index 6ba9f49e5..58888b64c 100644 --- a/test/test-cases/scale/saic/vnet_inbound_setup_commands.json +++ b/test/test-cases/scale/saic/vnet_inbound_setup_commands.json @@ -120,7 +120,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, { diff --git a/test/test-cases/scale/saic/vnet_outbound_setup_commands_scale.json b/test/test-cases/scale/saic/vnet_outbound_setup_commands_scale.json index 0a28f3854..4190b0394 100644 --- a/test/test-cases/scale/saic/vnet_outbound_setup_commands_scale.json +++ b/test/test-cases/scale/saic/vnet_outbound_setup_commands_scale.json @@ -131,7 +131,8 @@ "SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", - "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0" + "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False" ] }, { @@ -170,7 +171,8 @@ "SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", - "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0" + "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False" ] }, { diff --git a/test/test-cases/scale/saic/vnet_outbound_setup_commands_simple.json b/test/test-cases/scale/saic/vnet_outbound_setup_commands_simple.json index be2fe3acb..6f4f8f604 100644 --- a/test/test-cases/scale/saic/vnet_outbound_setup_commands_simple.json +++ b/test/test-cases/scale/saic/vnet_outbound_setup_commands_simple.json @@ -83,7 +83,8 @@ "SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID", "0", "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", - "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0" + "SAI_ENI_ATTR_V6_METER_POLICY_ID", "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", "False" ] }, { diff --git a/test/test-cases/scale/saic/vnet_route_setup_commands_bidirectional.json b/test/test-cases/scale/saic/vnet_route_setup_commands_bidirectional.json index f0e1e2119..18e204f90 100644 --- a/test/test-cases/scale/saic/vnet_route_setup_commands_bidirectional.json +++ b/test/test-cases/scale/saic/vnet_route_setup_commands_bidirectional.json @@ -181,7 +181,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, { @@ -252,7 +254,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, { @@ -323,7 +327,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, { @@ -394,7 +400,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, { diff --git a/test/test-cases/scale/saic/vnet_route_setup_commands_unidirectional.json b/test/test-cases/scale/saic/vnet_route_setup_commands_unidirectional.json index 8cefdc7d7..425f79cf8 100644 --- a/test/test-cases/scale/saic/vnet_route_setup_commands_unidirectional.json +++ b/test/test-cases/scale/saic/vnet_route_setup_commands_unidirectional.json @@ -120,7 +120,9 @@ "SAI_ENI_ATTR_V4_METER_POLICY_ID", "0", "SAI_ENI_ATTR_V6_METER_POLICY_ID", - "0" + "0", + "SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION", + "False" ] }, {