From 2c066a66117e9304ac9039fc94a8cfed11ce5e33 Mon Sep 17 00:00:00 2001 From: Akhilesh Samineni <47657796+AkhileshSamineni@users.noreply.github.com> Date: Tue, 10 Dec 2019 00:25:41 +0530 Subject: [PATCH] Support for snat available entry switch attribute in vslib (needed to run vs pytests) (#546) Signed-off-by: Akhilesh Samineni --- vslib/src/sai_vs_switch_BCM56850.cpp | 20 ++++++++++++++++++++ vslib/src/sai_vs_switch_MLNX2700.cpp | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/vslib/src/sai_vs_switch_BCM56850.cpp b/vslib/src/sai_vs_switch_BCM56850.cpp index ba9106dcfd05..2d1a1bf39410 100644 --- a/vslib/src/sai_vs_switch_BCM56850.cpp +++ b/vslib/src/sai_vs_switch_BCM56850.cpp @@ -68,6 +68,21 @@ static sai_status_t set_switch_default_attributes() CHECK_STATUS(vs_generic_set(SAI_OBJECT_TYPE_SWITCH, ss->getSwitchId(), &attr)); + attr.id = SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY; + attr.value.u32 = 100; + + CHECK_STATUS(vs_generic_set(SAI_OBJECT_TYPE_SWITCH, ss->getSwitchId(), &attr)); + + attr.id = SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY; + attr.value.u32 = 100; + + CHECK_STATUS(vs_generic_set(SAI_OBJECT_TYPE_SWITCH, ss->getSwitchId(), &attr)); + + attr.id = SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY; + attr.value.u32 = 50; /* Half of single NAT entry */ + + CHECK_STATUS(vs_generic_set(SAI_OBJECT_TYPE_SWITCH, ss->getSwitchId(), &attr)); + attr.id = SAI_SWITCH_ATTR_WARM_RECOVER; attr.value.booldata = false; @@ -1335,6 +1350,11 @@ sai_status_t refresh_read_only_BCM56850( case SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP: return SAI_STATUS_SUCCESS; + + case SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY: + case SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY: + case SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY: + return SAI_STATUS_SUCCESS; } } diff --git a/vslib/src/sai_vs_switch_MLNX2700.cpp b/vslib/src/sai_vs_switch_MLNX2700.cpp index 58d8aeb980ed..b6fb4ddfbfd2 100644 --- a/vslib/src/sai_vs_switch_MLNX2700.cpp +++ b/vslib/src/sai_vs_switch_MLNX2700.cpp @@ -66,6 +66,21 @@ static sai_status_t set_switch_default_attributes() CHECK_STATUS(vs_generic_set(SAI_OBJECT_TYPE_SWITCH, ss->getSwitchId(), &attr)); + attr.id = SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY; + attr.value.u32 = 100; + + CHECK_STATUS(vs_generic_set(SAI_OBJECT_TYPE_SWITCH, ss->getSwitchId(), &attr)); + + attr.id = SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY; + attr.value.u32 = 100; + + CHECK_STATUS(vs_generic_set(SAI_OBJECT_TYPE_SWITCH, ss->getSwitchId(), &attr)); + + attr.id = SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY; + attr.value.u32 = 50; /* Half of single NAT entry */ + + CHECK_STATUS(vs_generic_set(SAI_OBJECT_TYPE_SWITCH, ss->getSwitchId(), &attr)); + attr.id = SAI_SWITCH_ATTR_WARM_RECOVER; attr.value.booldata = false; @@ -1192,6 +1207,11 @@ sai_status_t refresh_read_only_MLNX2700( case SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_PER_SCHEDULER_GROUP: return SAI_STATUS_SUCCESS; + + case SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY: + case SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY: + case SAI_SWITCH_ATTR_AVAILABLE_DOUBLE_NAT_ENTRY: + return SAI_STATUS_SUCCESS; } }