osaf/services/saf/plmsv/plms/hpi_intf/plms_epath_util.c |  32 +++++++++++++---
 1 files changed, 26 insertions(+), 6 deletions(-)


Jun 20 14:17:18 linux-po6q osafplmd[20561]: ER epath_matched: 0, 
he_type_idr_matched: 0#011#011HE. ent_path: 
SHELF_MANAGER.0,UNSPECIFIED.1,ADVANCEDTCA_CHASSIS.7,ROOT.0
Jun 20 14:17:18 linux-po6q osafplmd[20561]: ER  HE 
SHELF_MANAGER.0,UNSPECIFIED.1,ADVANCEDTCA_CHASSIS.7,ROOT.0 verification FAILED.
Jun 20 14:17:18 linux-po6q osafclmna[20582]: NO 
safNode=SC-2,safCluster=Q50clmCluster Joined cluster, nodeid=2020f
Jun 20 14:17:18 linux-po6q osafplmd[20561]: ER epath_matched: 0, 
he_type_idr_matched: 0#011#011HE. ent_path: 
SHELF_MANAGER.0,UNSPECIFIED.2,ADVANCEDTCA_CHASSIS.7,ROOT.0
Jun 20 14:17:18 linux-po6q osafplmd[20561]: ER  HE 
SHELF_MANAGER.0,UNSPECIFIED.2,ADVANCEDTCA_CHASSIS.7,ROOT.0 verification FAILED.

PLM does not support entity paths with CHASSIS_SPECIFIC01 - CHASSIS_SPECIFIC13
in them.  So, any entity with CHASSIS_SPECIFICxx in it, cannot be modeled as an
HE.  The real entity path from the above log message is
SHELF_MANAGER.0,CHASSIS_SPECIFIC03.1,ADVANCEDTCA_CHASSIS.7,ROOT.0.
CHASSIS_SPECIFIC03 is the XTCAHPI_ENT_SHELF_MANAGER_SLOT in ATCA.  UNSPECIFIED
should never be seen.

Add the support for CHASSIS_SPECIFIC01 - CHASSIS_SPECIFIC13, so that ATCA
entities can be recognized and modeled as HEs.

diff --git a/osaf/services/saf/plmsv/plms/hpi_intf/plms_epath_util.c 
b/osaf/services/saf/plmsv/plms/hpi_intf/plms_epath_util.c
--- a/osaf/services/saf/plmsv/plms/hpi_intf/plms_epath_util.c
+++ b/osaf/services/saf/plmsv/plms/hpi_intf/plms_epath_util.c
@@ -39,8 +39,8 @@
 #define EPATH_DOT_SEPARATOR_CHAR        '.'
 #define EPATH_COMMA_SEPARATOR_CHAR      ','
 
-#define SAHPI_ENT_RACK_INDEX 59 
-#define SAHPI_ENT_AMC_INDEX 84
+#define SAHPI_ENT_RACK_INDEX 72
+#define SAHPI_ENT_AMC_INDEX 97
 
 /* list of entity path types */
 typedef struct
@@ -129,6 +129,19 @@ static PLMS_ENTITY_TYPE_LIST  hpi_ent_ty
 
 
        {"CHASSIS_SPECIFIC",           SAHPI_ENT_CHASSIS_SPECIFIC},
+       {"CHASSIS_SPECIFIC01",         SAHPI_ENT_CHASSIS_SPECIFIC01},
+       {"CHASSIS_SPECIFIC02",         SAHPI_ENT_CHASSIS_SPECIFIC02},
+       {"CHASSIS_SPECIFIC03",         SAHPI_ENT_CHASSIS_SPECIFIC03},
+       {"CHASSIS_SPECIFIC04",         SAHPI_ENT_CHASSIS_SPECIFIC04},
+       {"CHASSIS_SPECIFIC05",         SAHPI_ENT_CHASSIS_SPECIFIC05},
+       {"CHASSIS_SPECIFIC06",         SAHPI_ENT_CHASSIS_SPECIFIC06},
+       {"CHASSIS_SPECIFIC07",         SAHPI_ENT_CHASSIS_SPECIFIC07},
+       {"CHASSIS_SPECIFIC08",         SAHPI_ENT_CHASSIS_SPECIFIC08},
+       {"CHASSIS_SPECIFIC09",         SAHPI_ENT_CHASSIS_SPECIFIC09},
+       {"CHASSIS_SPECIFIC10",         SAHPI_ENT_CHASSIS_SPECIFIC10},
+       {"CHASSIS_SPECIFIC11",         SAHPI_ENT_CHASSIS_SPECIFIC11},
+       {"CHASSIS_SPECIFIC12",         SAHPI_ENT_CHASSIS_SPECIFIC12},
+       {"CHASSIS_SPECIFIC13",         SAHPI_ENT_CHASSIS_SPECIFIC13},
        {"BOARD_SET_SPECIFIC",         SAHPI_ENT_BOARD_SET_SPECIFIC},
        {"OEM_SYSINT_SPECIFIC",        SAHPI_ENT_OEM_SYSINT_SPECIFIC},
        {"ROOT",                       SAHPI_ENT_ROOT},
@@ -234,24 +247,31 @@ SaUint32T convert_entitypath_to_string(S
                        temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +1;
                        found = true;
                }
+               if(entity_path->Entry[i].EntityType > SAHPI_ENT_CHASSIS_SPECIFIC
+                       && entity_path->Entry[i].EntityType <= 
SAHPI_ENT_CHASSIS_SPECIFIC13){
+                       temp_value = entity_path->Entry[i].EntityType
+                               - SAHPI_ENT_CHASSIS_SPECIFIC;
+                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE + 1 + temp_value;
+                       found = true;
+               }
                if(SAHPI_ENT_BOARD_SET_SPECIFIC ==      
                        entity_path->Entry[i].EntityType){
-                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +2;
+                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +15;
                        found = true;
                }
                if(SAHPI_ENT_OEM_SYSINT_SPECIFIC ==
                        entity_path->Entry[i].EntityType){
-                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +3;
+                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +16;
                        found = true;
                }
                if(SAHPI_ENT_ROOT ==
                        entity_path->Entry[i].EntityType){
-                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +4;
+                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +17;
                        found = true;
                }
                if(SAHPI_ENT_RACK ==
                        entity_path->Entry[i].EntityType){
-                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +5;
+                       temp_index = SAHPI_ENT_SYSTEM_FIRMWARE +18;
                        found = true;
                }
 


------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to