📄 zanportpropertymib.c
字号:
pIdb->indexSubIdCount = 2;
*propertyNode = pPropertyNode;
return OK;
}
return (pPropertyNode == NULL) ? ERROR : OK;
}
/* %%EndUserCode zanPortPropertyMib_UserFunctions */
/****************************************************************************
*
* zanPortPropertyMibInit - initialize/register zanPortPropertyMib and objects.
*
* This routine initializes the modules IDB routines.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/
STATUS zanPortPropertyMibInit
(
void * parm1,
void * parm2
)
{
STATUS rc;
/* %%BeginUserCode zanPortPropertyMibInit_Prolog */
/* %%EndUserCode zanPortPropertyMibInit_Prolog */
rc = OK;
/* %%BeginUserCode zanPortPropertyMibInit_Body */
/* %%EndUserCode zanPortPropertyMibInit_Body */
/* Register the module's information with IDB+ engine */
idbModuleRegister( moduleName, &xlateTable[0] );
/* %%BeginUserCode zanPortPropertyMibInit_Epilog */
zanPortPropertyMibNvmInit();
nvmModuleRetrieve( moduleName );
/* %%EndUserCode zanPortPropertyMibInit_Epilog */
return( rc );
}
/******************************************************************************
*
* zanPortPropertyMibTerminate - Terminate zanPortPropertyMib and objects.
*
* This routine de-initializes the IDB module functions.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/
STATUS zanPortPropertyMibTerminate
(
void * parm
)
{
STATUS rc;
/* %%BeginUserCode zanPortPropertyMibTerminate_Prolog */
/* %%EndUserCode zanPortPropertyMibTerminate_Prolog */
rc = OK;
/* De-register the module's information with IDB+ engine */
idbModuleDeRegister( moduleName );
/* %%BeginUserCode zanPortPropertyMibTerminate_Epilog */
/* %%EndUserCode zanPortPropertyMibTerminate_Epilog */
return( rc );
}
/******************************************************************************
*
* zanPortPropertyMibScalarHandler - handles all scalar objects.
*
* This routine handles all scalar objects for this IDB+ Module.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/
LOCAL STATUS zanPortPropertyMibScalarHandler
(
idbRequest_t request,
idb_t * idb
)
{
STATUS rc;
/* %%BeginUserCode zanPortPropertyMibScalarHandler_Prolog */
/* %%EndUserCode zanPortPropertyMibScalarhandler_Prolog */
rc = OK;
/* Validate the Scalar indexSubIdCount and instance value */
if ( idbScalarValidate( request, idb ) == ERROR )
return idbErrorRequestMap( request );
switch( idb->localId )
{
default:
rc = idbErrorNoSuchInstance();
break;
}
/* %%BeginUserCode zanPortPropertyMibScalar_Epilog */
/* %%EndUserCode zanPortPropertyMibScalar_Epilog */
return( rc );
}
/******************************************************************************
*
* zanPropertyPortVlanEntryTableHandler - handles table objects.
*
* This routine handles all objects for this table.
*
* RETURNS: OK or ERROR
*
* ERRNO: N/A
*/
LOCAL STATUS zanPropertyPortVlanEntryTableHandler
(
idbRequest_t request,
idb_t * idb
)
{
STATUS rc;
/* %%BeginUserCode zanPropertyPortVlanEntryTableHandler_Prolog */
/* %%EndUserCode zanPropertyPortVlanEntryTablehandler_Prolog */
rc = OK;
switch( idb->localId )
{
default:
rc = idbErrorNoSuchInstance();
break;
/* ================================================================= */
case zanPropertyPortVlanType: /* INTEGER, read-write */
{
/* %%BeginUserCode zanPropertyPortVlanType_Body */
zanPortProperty_t *pProPort = NULL;
switch ( request )
{
case IDB_GET_NEXT:
/* Check to make sure the next object is valid. */
rc = findNextPortVlanType(idb, &pProPort);
if (pProPort != NULL)
ulongSet(idb, pProPort->Type);
else
rc = ERROR;
break;
/* FALLTHRU */
case IDB_GET:
if ( rc == OK )
{
rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort != NULL)
ulongSet(idb, pProPort->Type);
else
rc = ERROR;
}
break;
case IDB_VALIDATE:
break;
case IDB_SET_NVM:
rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort == NULL)
{
rc = addPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort != NULL)
pProPort->Type = ulongGet(idb);
}
else
pProPort->Type = ulongGet(idb);
break;
case IDB_COMMIT:
if ((idb->indexSubIdCount != 2) || (idb->pIndex[0] > 64) || (idb->pIndex[0] < 1) ||
(idb->pIndex[1] > 4094) || (idb->pIndex[1] < 1))
return ERROR;
rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort != NULL)
{
pProPort->Type = ulongGet(idb);
portPropertyNvmObjUpdate("zanPropertyPortVlanType", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
}
break;
}
/* %%EndUserCode zanPropertyPortVlanType_Body */
}
break;
/* ================================================================= */
case zanPropertyPortVlanRowStatus: /* INTEGER, read-write */
{
/* %%BeginUserCode zanPropertyPortVlanRowStatus_Body */
zanPortProperty_t *pProPort = NULL;
switch ( request )
{
case IDB_GET_NEXT:
/* Check to make sure the next object is valid. */
rc = findNextPortVlanType(idb, &pProPort);
if (pProPort != NULL)
ulongSet(idb, pProPort->Status);
else
rc = ERROR;
break;
/* FALLTHRU */
case IDB_GET:
if ( rc == OK )
{
rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort != NULL)
ulongSet(idb, pProPort->Status);
else
rc = ERROR;
}
break;
case IDB_VALIDATE:
break;
case IDB_SET_NVM:
rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort == NULL)
{
rc = addPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort != NULL)
pProPort->Status = ulongGet(idb);
}
else
pProPort->Status = ulongGet(idb);
break;
case IDB_COMMIT:
if ((idb->indexSubIdCount != 2) || (idb->pIndex[0] > 64) || (idb->pIndex[0] < 1) ||
(idb->pIndex[1] > 4094) || (idb->pIndex[1] < 1))
return ERROR;
switch (ulongGet(idb))
{
case EzanPropertyPortVlanRowStatus_createAndGo:
rc = addPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort != NULL)
{
pProPort->Status = EzanPropertyPortVlanRowStatus_active;
pProPort->Type = 15;
}
portPropertyNvmObjUpdate("zanPropertyPortVlanRowStatus", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
break;
case EzanPropertyPortVlanRowStatus_active:
rc = findPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort != NULL)
{
pProPort->Status = EzanPropertyPortVlanRowStatus_active;
}
portPropertyNvmObjUpdate("zanPropertyPortVlanRowStatus", idb->pIndex, idb->indexSubIdCount, idb->pValueBuf, idb->valueLen, TRUE);
break;
case EzanPropertyPortVlanRowStatus_destroy:
portPropertyNvmObjDelete("zanPropertyPortVlanRowStatus", idb->pIndex, idb->indexSubIdCount);
portPropertyNvmObjDelete("zanPropertyPortVlanType", idb->pIndex, idb->indexSubIdCount);
rc = delPortVlanType(idb->pIndex[1], idb->pIndex[0], &pProPort);
if (pProPort != NULL)
{
free(pProPort);
pProPort = NULL;
}
break;
}
break;
}
/* %%EndUserCode zanPropertyPortVlanRowStatus_Body */
}
break;
}
/* %%BeginUserCode zanPropertyPortVlanEntryTable_Epilog */
/* %%EndUserCode zanPropertyPortVlanEntryTable_Epilog */
return( rc );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -