Skip to content

Commit b60d12f

Browse files
Prabhu SreenivasanPrabhuSreenivasan
Prabhu Sreenivasan
authored andcommitted
[crm] Add support for snat, dnat and ipmc crm resources
Signed-off-by: Prabhu Sreenivasan <[email protected]>
1 parent 86e1171 commit b60d12f

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

orchagent/crmorch.cpp

+34-7
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ const map<CrmResourceType, string> crmResTypeNameMap =
3737
{ CrmResourceType::CRM_ACL_GROUP, "ACL_GROUP" },
3838
{ CrmResourceType::CRM_ACL_ENTRY, "ACL_ENTRY" },
3939
{ CrmResourceType::CRM_ACL_COUNTER, "ACL_COUNTER" },
40-
{ CrmResourceType::CRM_FDB_ENTRY, "FDB_ENTRY" }
40+
{ CrmResourceType::CRM_FDB_ENTRY, "FDB_ENTRY" },
41+
{ CrmResourceType::CRM_IPMC_ENTRY, "IPMC_ENTRY" },
42+
{ CrmResourceType::CRM_SNAT_ENTRY, "SNAT_ENTRY" },
43+
{ CrmResourceType::CRM_DNAT_ENTRY, "DNAT_ENTRY" }
4144
};
4245

4346
const map<CrmResourceType, uint32_t> crmResSaiAvailAttrMap =
@@ -54,7 +57,10 @@ const map<CrmResourceType, uint32_t> crmResSaiAvailAttrMap =
5457
{ CrmResourceType::CRM_ACL_GROUP, SAI_SWITCH_ATTR_AVAILABLE_ACL_TABLE_GROUP },
5558
{ CrmResourceType::CRM_ACL_ENTRY, SAI_ACL_TABLE_ATTR_AVAILABLE_ACL_ENTRY },
5659
{ CrmResourceType::CRM_ACL_COUNTER, SAI_ACL_TABLE_ATTR_AVAILABLE_ACL_COUNTER },
57-
{ CrmResourceType::CRM_FDB_ENTRY, SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY }
60+
{ CrmResourceType::CRM_FDB_ENTRY, SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY },
61+
{ CrmResourceType::CRM_IPMC_ENTRY, SAI_SWITCH_ATTR_AVAILABLE_IPMC_ENTRY},
62+
{ CrmResourceType::CRM_SNAT_ENTRY, SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY },
63+
{ CrmResourceType::CRM_DNAT_ENTRY, SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY }
5864
};
5965

6066
const map<string, CrmResourceType> crmThreshTypeResMap =
@@ -71,7 +77,10 @@ const map<string, CrmResourceType> crmThreshTypeResMap =
7177
{ "acl_group_threshold_type", CrmResourceType::CRM_ACL_GROUP },
7278
{ "acl_entry_threshold_type", CrmResourceType::CRM_ACL_ENTRY },
7379
{ "acl_counter_threshold_type", CrmResourceType::CRM_ACL_COUNTER },
74-
{ "fdb_entry_threshold_type", CrmResourceType::CRM_FDB_ENTRY }
80+
{ "fdb_entry_threshold_type", CrmResourceType::CRM_FDB_ENTRY },
81+
{ "ipmc_entry_threshold_type", CrmResourceType::CRM_IPMC_ENTRY },
82+
{ "snat_entry_threshold_type", CrmResourceType::CRM_SNAT_ENTRY },
83+
{ "dnat_entry_threshold_type", CrmResourceType::CRM_DNAT_ENTRY }
7584
};
7685

7786
const map<string, CrmResourceType> crmThreshLowResMap =
@@ -89,6 +98,9 @@ const map<string, CrmResourceType> crmThreshLowResMap =
8998
{"acl_entry_low_threshold", CrmResourceType::CRM_ACL_ENTRY },
9099
{"acl_counter_low_threshold", CrmResourceType::CRM_ACL_COUNTER },
91100
{"fdb_entry_low_threshold", CrmResourceType::CRM_FDB_ENTRY },
101+
{"ipmc_entry_low_threshold", CrmResourceType::CRM_IPMC_ENTRY },
102+
{"snat_entry_low_threshold", CrmResourceType::CRM_SNAT_ENTRY },
103+
{"dnat_entry_low_threshold", CrmResourceType::CRM_DNAT_ENTRY }
92104
};
93105

94106
const map<string, CrmResourceType> crmThreshHighResMap =
@@ -105,7 +117,10 @@ const map<string, CrmResourceType> crmThreshHighResMap =
105117
{"acl_group_high_threshold", CrmResourceType::CRM_ACL_GROUP },
106118
{"acl_entry_high_threshold", CrmResourceType::CRM_ACL_ENTRY },
107119
{"acl_counter_high_threshold", CrmResourceType::CRM_ACL_COUNTER },
108-
{"fdb_entry_high_threshold", CrmResourceType::CRM_FDB_ENTRY }
120+
{"fdb_entry_high_threshold", CrmResourceType::CRM_FDB_ENTRY },
121+
{"ipmc_entry_high_threshold", CrmResourceType::CRM_IPMC_ENTRY },
122+
{"snat_entry_high_threshold", CrmResourceType::CRM_SNAT_ENTRY },
123+
{"dnat_entry_high_threshold", CrmResourceType::CRM_DNAT_ENTRY }
109124
};
110125

111126
const map<string, CrmThresholdType> crmThreshTypeMap =
@@ -129,7 +144,10 @@ const map<string, CrmResourceType> crmAvailCntsTableMap =
129144
{ "crm_stats_acl_group_available", CrmResourceType::CRM_ACL_GROUP },
130145
{ "crm_stats_acl_entry_available", CrmResourceType::CRM_ACL_ENTRY },
131146
{ "crm_stats_acl_counter_available", CrmResourceType::CRM_ACL_COUNTER },
132-
{ "crm_stats_fdb_entry_available", CrmResourceType::CRM_FDB_ENTRY }
147+
{ "crm_stats_fdb_entry_available", CrmResourceType::CRM_FDB_ENTRY },
148+
{ "crm_stats_ipmc_entry_available", CrmResourceType::CRM_IPMC_ENTRY },
149+
{ "crm_stats_snat_entry_available", CrmResourceType::CRM_SNAT_ENTRY },
150+
{ "crm_stats_dnat_entry_available", CrmResourceType::CRM_DNAT_ENTRY }
133151
};
134152

135153
const map<string, CrmResourceType> crmUsedCntsTableMap =
@@ -146,7 +164,10 @@ const map<string, CrmResourceType> crmUsedCntsTableMap =
146164
{ "crm_stats_acl_group_used", CrmResourceType::CRM_ACL_GROUP },
147165
{ "crm_stats_acl_entry_used", CrmResourceType::CRM_ACL_ENTRY },
148166
{ "crm_stats_acl_counter_used", CrmResourceType::CRM_ACL_COUNTER },
149-
{ "crm_stats_fdb_entry_used", CrmResourceType::CRM_FDB_ENTRY }
167+
{ "crm_stats_fdb_entry_used", CrmResourceType::CRM_FDB_ENTRY },
168+
{ "crm_stats_ipmc_entry_used", CrmResourceType::CRM_IPMC_ENTRY },
169+
{ "crm_stats_snat_entry_used", CrmResourceType::CRM_SNAT_ENTRY },
170+
{ "crm_stats_dnat_entry_used", CrmResourceType::CRM_DNAT_ENTRY }
150171
};
151172

152173
CrmOrch::CrmOrch(DBConnector *db, string tableName):
@@ -429,11 +450,17 @@ void CrmOrch::getResAvailableCounters()
429450
case SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY:
430451
case SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY:
431452
case SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY:
453+
case SAI_SWITCH_ATTR_AVAILABLE_IPMC_ENTRY:
454+
case SAI_SWITCH_ATTR_AVAILABLE_SNAT_ENTRY:
455+
case SAI_SWITCH_ATTR_AVAILABLE_DNAT_ENTRY:
432456
{
433457
sai_status_t status = sai_switch_api->get_switch_attribute(gSwitchId, 1, &attr);
434458
if (status != SAI_STATUS_SUCCESS)
435459
{
436-
SWSS_LOG_ERROR("Failed to get switch attribute %u , rv:%d", attr.id, status);
460+
if(status != SAI_STATUS_NOT_SUPPORTED)
461+
{
462+
SWSS_LOG_ERROR("Failed to get switch attribute %u , rv:%d", attr.id, status);
463+
}
437464
break;
438465
}
439466

orchagent/crmorch.h

+3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ enum class CrmResourceType
2525
CRM_ACL_ENTRY,
2626
CRM_ACL_COUNTER,
2727
CRM_FDB_ENTRY,
28+
CRM_IPMC_ENTRY,
29+
CRM_SNAT_ENTRY,
30+
CRM_DNAT_ENTRY,
2831
};
2932

3033
enum class CrmThresholdType

0 commit comments

Comments
 (0)