int onlp_sysi_oids_get(onlp_oid_t* table, int max) { onlp_oid_t* e = table; memset(table, 0, max*sizeof(onlp_oid_t)); /* 2 PSUs */ *e++ = ONLP_PSU_ID_CREATE(1); *e++ = ONLP_PSU_ID_CREATE(2); /* 1 Fan */ *e++ = ONLP_FAN_ID_CREATE(1); /* 9 Thermal sensors */ *e++ = ONLP_THERMAL_ID_CREATE(1); *e++ = ONLP_THERMAL_ID_CREATE(2); *e++ = ONLP_THERMAL_ID_CREATE(3); *e++ = ONLP_THERMAL_ID_CREATE(4); *e++ = ONLP_THERMAL_ID_CREATE(5); *e++ = ONLP_THERMAL_ID_CREATE(6); *e++ = ONLP_THERMAL_ID_CREATE(7); *e++ = ONLP_THERMAL_ID_CREATE(8); *e++ = ONLP_THERMAL_ID_CREATE(11); /* 5 LEDs */ *e++ = ONLP_LED_ID_CREATE(1); *e++ = ONLP_LED_ID_CREATE(2); *e++ = ONLP_LED_ID_CREATE(3); *e++ = ONLP_LED_ID_CREATE(4); *e++ = ONLP_LED_ID_CREATE(5); return 0; }
/* * This function will be called prior to any other onlp_ledi_* functions. */ int onlp_ledi_init(void) { onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_DIAG), ONLP_LED_MODE_OFF); onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_LOC), ONLP_LED_MODE_OFF); return ONLP_STATUS_OK; }
/* * This function will be called prior to any other onlp_ledi_* functions. */ int onlp_ledi_init(void) { /* * Turn off the LOCATION and DIAG LEDs at startup */ onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_LOC), ONLP_LED_MODE_OFF); onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_DIAG), ONLP_LED_MODE_OFF); return ONLP_STATUS_OK; }
int onlp_sysi_platform_manage_leds(void) { int rv; onlp_fan_info_t fi; onlp_led_mode_t mode = ONLP_LED_MODE_GREEN; rv = onlp_fani_info_get(ONLP_FAN_ID_CREATE(1), &fi); if(rv < 0) { mode = ONLP_LED_MODE_ORANGE; } else if((fi.status & 1) == 0) { mode = ONLP_LED_MODE_OFF; } else if(fi.status & ONLP_FAN_STATUS_FAILED) { mode = ONLP_LED_MODE_ORANGE; } onlp_ledi_mode_set(ONLP_LED_ID_CREATE(2), mode); onlp_psu_info_t pi; mode = ONLP_LED_MODE_GREEN; rv = onlp_psu_info_get(ONLP_PSU_ID_CREATE(1), &pi); if(rv < 0) { mode = ONLP_LED_MODE_ORANGE; } else if((pi.status & 1) == 0) { mode = ONLP_LED_MODE_OFF; } else if(pi.status & ONLP_PSU_STATUS_FAILED) { mode = ONLP_LED_MODE_ORANGE; } onlp_ledi_mode_set(ONLP_LED_ID_CREATE(4), mode); mode = ONLP_LED_MODE_GREEN; rv = onlp_psu_info_get(ONLP_PSU_ID_CREATE(2), &pi); if(rv < 0) { mode = ONLP_LED_MODE_ORANGE; } else if((pi.status & 1) == 0) { mode = ONLP_LED_MODE_OFF; } else if(pi.status & ONLP_PSU_STATUS_FAILED) { mode = ONLP_LED_MODE_ORANGE; } onlp_ledi_mode_set(ONLP_LED_ID_CREATE(5), mode); return 0; }
int onlp_sysi_oids_get(onlp_oid_t* table, int max) { int i; onlp_oid_t* e = table; memset(table, 0, max*sizeof(onlp_oid_t)); /* 6 Thermal sensors on the chassis */ for (i = 1; i <= CHASSIS_THERMAL_COUNT; i++) { *e++ = ONLP_THERMAL_ID_CREATE(i); } /* 5 LEDs on the chassis */ for (i = 1; i <= CHASSIS_LED_COUNT; i++) { *e++ = ONLP_LED_ID_CREATE(i); } /* 2 PSUs on the chassis */ for (i = 1; i <= CHASSIS_PSU_COUNT; i++) { *e++ = ONLP_PSU_ID_CREATE(i); } /* 6 Fans on the chassis */ for (i = 1; i <= CHASSIS_FAN_COUNT; i++) { *e++ = ONLP_FAN_ID_CREATE(i); } return 0; }
int onlp_sysi_oids_get(onlp_oid_t* table, int max) { int i; onlp_oid_t* e = table; memset(table, 0, max*sizeof(onlp_oid_t)); /* 4 Thermal sensors on the chassis */ for (i = 1; i <= NUM_OF_THERMAL_ON_MAIN_BROAD; i++) { *e++ = ONLP_THERMAL_ID_CREATE(i); } /* 5 LEDs on the chassis */ for (i = 1; i <= NUM_OF_LED_ON_MAIN_BROAD; i++) { *e++ = ONLP_LED_ID_CREATE(i); } /* 2 PSUs on the chassis */ for (i = 1; i <= NUM_OF_PSU_ON_MAIN_BROAD; i++) { *e++ = ONLP_PSU_ID_CREATE(i); } /* 4 Fans on the chassis */ for (i = 1; i <= NUM_OF_FAN_ON_MAIN_BROAD; i++) { *e++ = ONLP_FAN_ID_CREATE(i); } return 0; }
int onlp_sysi_oids_get(onlp_oid_t* table, int max) { onlp_oid_t* e = table; memset(table, 0, max*sizeof(onlp_oid_t)); int i; /* 2 PSUs */ *e++ = ONLP_PSU_ID_CREATE(1); *e++ = ONLP_PSU_ID_CREATE(2); /* LEDs Item */ for (i=1; i<=CHASSIS_LED_COUNT; i++) { *e++ = ONLP_LED_ID_CREATE(i); } /* THERMALs Item */ for (i=1; i<=CHASSIS_THERMAL_COUNT; i++) { *e++ = ONLP_THERMAL_ID_CREATE(i); } /* Fans Item */ for (i=1; i<=CHASSIS_FAN_COUNT; i++) { *e++ = ONLP_FAN_ID_CREATE(i); } return 0; }
/* * This function will be called prior to any other onlp_ledi_* functions. */ int onlp_ledi_init(void) { int ret; if ((ret = onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_DIAG), ONLP_LED_MODE_OFF)) != ONLP_STATUS_OK) { return ret; } return ONLP_STATUS_OK; }
int onlp_ledi_init(void) { pthread_mutex_init(&diag_mutex, NULL); /* * Diag LED Off */ onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_SYS), ONLP_LED_MODE_OFF); return ONLP_STATUS_OK; }
"reserved", "psu1", "psu2", "fan", "diag", "loc", }; /* * Get the information for the given LED OID. */ static onlp_led_info_t linfo[] = { { }, /* Not used */ { { ONLP_LED_ID_CREATE(LED_PSU1), "Chassis LED 1 (PSU1 LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_PSU1), "Chassis LED 2 (PSU2 LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_FAN), "Chassis LED 3 (FAN LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_DIAG), "Chassis LED 4 (DIAG LED)", 0 },
int onlp_sysi_platform_manage_leds(void) { int i,tray_i,rc; onlp_fan_info_t info; onlp_led_mode_t fan_new_mode; onlp_led_mode_t fan_tray_new_mode[3]; onlp_psu_info_t psu; onlp_led_mode_t psu_new_mode; onlp_led_mode_t sys_new_mode; onlp_led_mode_t locator_new_mode; /*fan led */ /*fan led */ for(tray_i=0;tray_i<3;tray_i++){ for(i=CHASSIS_FAN_COUNT-2*tray_i;i>=CHASSIS_FAN_COUNT-2*tray_i-1;i--){ rc=onlp_fani_info_get(ONLP_FAN_ID_CREATE(i), &info); if ((rc != ONLP_STATUS_OK) ||((info.status&0x1)!=1)){ fan_tray_new_mode[tray_i]=ONLP_LED_MODE_OFF; goto tray_next; } else{ if((info.status&0x2)==1){ fan_tray_new_mode[tray_i]=ONLP_LED_MODE_YELLOW; goto tray_next; } } } fan_tray_new_mode[tray_i]=ONLP_LED_MODE_GREEN; tray_next: continue; } onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_FAN_TRAY0),fan_tray_new_mode[0]); onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_FAN_TRAY1),fan_tray_new_mode[1]); onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_FAN_TRAY2),fan_tray_new_mode[2]); if((fan_tray_new_mode[0]==ONLP_LED_MODE_GREEN)&&(fan_tray_new_mode[1]==ONLP_LED_MODE_GREEN)&& (fan_tray_new_mode[2]==ONLP_LED_MODE_GREEN)) fan_new_mode=ONLP_LED_MODE_GREEN; else if((fan_tray_new_mode[0]==ONLP_LED_MODE_OFF)||(fan_tray_new_mode[1]==ONLP_LED_MODE_OFF)|| (fan_tray_new_mode[2]==ONLP_LED_MODE_OFF)) fan_new_mode=ONLP_LED_MODE_YELLOW; else fan_new_mode=ONLP_LED_MODE_YELLOW_BLINKING; onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_FAN),fan_new_mode); /*psu1 and psu2 led */ for(i=1;i<=CHASSIS_PSU_COUNT;i++){ rc=onlp_psui_info_get(ONLP_PSU_ID_CREATE(i),&psu); if (rc != ONLP_STATUS_OK) { continue; } if((psu.status&0x1)&&!(psu.status&0x2)){ psu_new_mode=ONLP_LED_MODE_GREEN; goto sys_led; } } psu_new_mode=ONLP_LED_MODE_YELLOW_BLINKING; sys_led : onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_POWER),psu_new_mode); //sys led ---------------- if((fan_new_mode!=ONLP_LED_MODE_GREEN)||(psu_new_mode!=ONLP_LED_MODE_GREEN)) sys_new_mode=ONLP_LED_MODE_YELLOW_BLINKING; else sys_new_mode=ONLP_LED_MODE_GREEN; onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_SYS),sys_new_mode); locator_new_mode=ONLP_LED_MODE_BLUE; onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_LOCATOR),locator_new_mode); return ONLP_STATUS_OK; }
"reserved", "status", "fan", "psu1", "psu2", "uid" }; /* * Get the information for the given LED OID. */ static onlp_led_info_t linfo[] = { { }, /* Not used */ { { ONLP_LED_ID_CREATE(LED_SYSTEM), "Chassis LED 1 (SYSTEM LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING | ONLP_LED_CAPS_RED | ONLP_LED_CAPS_RED_BLINKING | ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_FAN), "Chassis LED 2 (FAN LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING | ONLP_LED_CAPS_RED | ONLP_LED_CAPS_RED_BLINKING | ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_PSU1), "Chassis LED 3 (PSU1 LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING | ONLP_LED_CAPS_RED | ONLP_LED_CAPS_RED_BLINKING | ONLP_LED_CAPS_AUTO,
int onlp_sysi_platform_manage_leds(void) { int rc,rc1; onlp_fan_info_t info1,info2; onlp_led_mode_t fan_new_mode; onlp_thermal_info_t ti; onlp_led_mode_t temp_new_mode; onlp_psu_info_t psu1; onlp_led_mode_t psu1_new_mode; onlp_psu_info_t psu2; onlp_led_mode_t psu2_new_mode; onlp_led_mode_t sys_new_mode; /*fan led */ rc=onlp_fani_info_get(ONLP_FAN_ID_CREATE(1), &info1); rc1=onlp_fani_info_get(ONLP_FAN_ID_CREATE(2), &info2); if ((rc != ONLP_STATUS_OK)||(rc1 != ONLP_STATUS_OK)){ fan_new_mode=ONLP_LED_MODE_RED; goto temp_led; } if(((info1.status&0x3)==1)&&((info2.status&0x3)==1)) fan_new_mode=ONLP_LED_MODE_GREEN; else fan_new_mode=ONLP_LED_MODE_RED; temp_led: onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_FAN),fan_new_mode); /*temperature led */ rc = onlp_thermali_info_get(ONLP_THERMAL_ID_CREATE(1), &ti); if (rc != ONLP_STATUS_OK) { temp_new_mode=ONLP_LED_MODE_OFF; goto psu1_led; } if(ti.mcelsius >= 75000) temp_new_mode=ONLP_LED_MODE_RED; else temp_new_mode=ONLP_LED_MODE_GREEN; psu1_led: onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_TEMP),temp_new_mode); /*psu1 and psu2 led */ rc=onlp_psui_info_get(ONLP_PSU_ID_CREATE(1),&psu1); if (rc != ONLP_STATUS_OK) { psu1_new_mode=ONLP_LED_MODE_OFF; goto psu2_led; } if((psu1.status&0x1)&&!(psu1.status&0x2)) psu1_new_mode=ONLP_LED_MODE_GREEN; else psu1_new_mode=ONLP_LED_MODE_OFF; psu2_led: onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_PSU1),psu1_new_mode); //psu2 led ---------------- rc=onlp_psui_info_get(ONLP_PSU_ID_CREATE(2),&psu2); if (rc != ONLP_STATUS_OK) { psu2_new_mode=ONLP_LED_MODE_OFF; goto sys_led; } if((psu2.status&0x1)&&!(psu2.status&0x2)) psu2_new_mode=ONLP_LED_MODE_GREEN; else psu2_new_mode=ONLP_LED_MODE_OFF; sys_led : onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_PSU2),psu2_new_mode); //sys led ---------------- if((fan_new_mode!=ONLP_LED_MODE_GREEN)||((psu2_new_mode!=ONLP_LED_MODE_GREEN)&& \ (psu1_new_mode!=ONLP_LED_MODE_GREEN))) sys_new_mode=ONLP_LED_MODE_RED_BLINKING; else sys_new_mode=ONLP_LED_MODE_GREEN; onlp_ledi_mode_set(ONLP_LED_ID_CREATE(LED_SYS),sys_new_mode); return ONLP_STATUS_OK; }
"reserved", INV_CPLD_PREFIX"/%s_led", INV_PSOC_PREFIX"/fan_led_%s1", INV_PSOC_PREFIX"/fan_led_%s2", INV_PSOC_PREFIX"/fan_led_%s3", INV_PSOC_PREFIX"/fan_led_%s4", }; /* * Get the information for the given LED OID. */ static onlp_led_info_t linfo[LED_MAX] = { { }, /* Not used */ { { ONLP_LED_ID_CREATE(LED_SYS), "Chassis LED (SYSTEM LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_RED | ONLP_LED_CAPS_ORANGE, ONLP_LED_MODE_ON, '0', }, { { ONLP_LED_ID_CREATE(LED_FAN1), "Fan LED 1 (FAN1 LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_RED, ONLP_LED_MODE_ON, '0', }, { { ONLP_LED_ID_CREATE(LED_FAN2), "Fan LED 2 (FAN2 LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_RED, ONLP_LED_MODE_ON, '0',
"poe", "stk1", "stk2", "fan", "psu1", "psu2" }; /* * Get the information for the given LED OID. */ static onlp_led_info_t linfo[] = { { }, /* Not used */ { { ONLP_LED_ID_CREATE(LED_DIAG), "LED 1 (DIAG LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF |ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_GREEN_BLINKING, }, { { ONLP_LED_ID_CREATE(LED_PRI), "LED 2 (PRI LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_GREEN, }, { { ONLP_LED_ID_CREATE(LED_PRI), "LED 3 (POE LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_GREEN, }, { { ONLP_LED_ID_CREATE(LED_STK1), "LED 4 (STK1 LED)", 0 },
"reserved", "diag", "loc", "fan", "psu1", "psu2" }; /* * Get the information for the given LED OID. */ static onlp_led_info_t linfo[] = { { }, /* Not used */ { { ONLP_LED_ID_CREATE(LED_DIAG), "LED 1 (DIAG LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_RED, }, { { ONLP_LED_ID_CREATE(LED_LOC), "LED 2 (LOC LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_BLUE, }, { { ONLP_LED_ID_CREATE(LED_FAN), "LED 3 (FAN LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_PSU1), "LED 4 (PSU1 LED)", 0 },
"status", "fan1", "fan2", "fan3", "fan4", "psu" }; /* * Get the information for the given LED OID. */ static onlp_led_info_t linfo[] = { { }, /* Not used */ { { ONLP_LED_ID_CREATE(LED_SYSTEM), "Chassis LED 1 (SYSTEM LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING | ONLP_LED_CAPS_RED | ONLP_LED_CAPS_RED_BLINKING | ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_FAN1), "Chassis LED 2 (FAN1 (1-2) )", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING | ONLP_LED_CAPS_RED | ONLP_LED_CAPS_RED_BLINKING | ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_FAN2), "Chassis LED 3 (FAN2 (3-4) )", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING | ONLP_LED_CAPS_RED | ONLP_LED_CAPS_RED_BLINKING | ONLP_LED_CAPS_AUTO,
#include <onlp/platformi/ledi.h> #define VALIDATE(_id) \ do { \ if(!ONLP_OID_IS_LED(_id)) { \ return ONLP_STATUS_E_INVALID; \ } \ } while(0) /* Get the information for the given LED OID. */ static onlp_led_info_t linfo[] = { { }, // Not used { { ONLP_LED_ID_CREATE(LED_FRONT_FAN), "FRONT LED (FAN LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_YELLOW | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_YELLOW_BLINKING, }, { { ONLP_LED_ID_CREATE(LED_FRONT_PWR), "FRONT LED (PWR LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_YELLOW | ONLP_LED_CAPS_GREEN, }, { { ONLP_LED_ID_CREATE(LED_FRONT_SYS), "FRONT LED (SYS LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_YELLOW | ONLP_LED_CAPS_GREEN_BLINKING | \ ONLP_LED_CAPS_YELLOW_BLINKING, }, {
"fan", "fan1", "fan2", "fan3", "fan4", "fan5" }; /* * Get the information for the given LED OID. */ static onlp_led_info_t linfo[] = { { }, /* Not used */ { { ONLP_LED_ID_CREATE(LED_PSU1), "Chassis LED 1 (PSU1 LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_PSU2), "Chassis LED 2 (PSU2 LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_AUTO, }, { { ONLP_LED_ID_CREATE(LED_DIAG), "Chassis LED 3 (DIAG LED)", 0 }, ONLP_LED_STATUS_PRESENT, ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING, }, { { ONLP_LED_ID_CREATE(LED_LOC), "Chassis LED 4 (LOC LED)", 0 },