Skip to content

Commit

Permalink
[nes]: ETHERNET changes ...
Browse files Browse the repository at this point in the history
  • Loading branch information
nes-repo committed Dec 30, 2014
1 parent e424d06 commit 39c79ef
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 15 deletions.
37 changes: 37 additions & 0 deletions ethernet/ethernetUtils.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,43 @@ ieee8021BridgeDot1dPortRowStatus_update (
return bRetCode;
}

bool
ieee8021QBridgeCVlanPortRowStatus_update (
ieee8021BridgeBaseEntry_t *poComponent,
ieee8021QBridgeCVlanPortEntry_t *poEntry, uint8_t u8RowStatus)
{
register bool bRetCode = false;
register ieee8021BridgeBasePortEntry_t *poIeee8021BridgeBasePortEntry = NULL;

if ((poIeee8021BridgeBasePortEntry = ieee8021BridgeBasePortTable_getByIndex (poEntry->u32ComponentId, poEntry->u32Number)) == NULL)
{
goto ieee8021QBridgeCVlanPortRowStatus_update_cleanup;
}

if (u8RowStatus != xRowStatus_active_c &&
!ieee8021BridgeXPortRowStatus_halUpdate (poComponent, poEntry, ieee8021BridgeBasePortType_customerVlanPort_c, poEntry->u8RowStatus, u8RowStatus))
{
goto ieee8021QBridgeCVlanPortRowStatus_update_cleanup;
}

if (!ieee8021BridgeBasePortRowStatus_handler (poComponent, poIeee8021BridgeBasePortEntry, u8RowStatus))
{
goto ieee8021QBridgeCVlanPortRowStatus_update_cleanup;
}

if (u8RowStatus == xRowStatus_active_c &&
!ieee8021BridgeXPortRowStatus_halUpdate (poComponent, poEntry, ieee8021BridgeBasePortType_customerVlanPort_c, poEntry->u8RowStatus, u8RowStatus))
{
goto ieee8021QBridgeCVlanPortRowStatus_update_cleanup;
}

bRetCode = true;

ieee8021QBridgeCVlanPortRowStatus_update_cleanup:

return bRetCode;
}

bool
ieee8021QBridgeVlanCurrentTable_vlanUpdate (
ieee8021BridgeBaseEntry_t *poComponent,
Expand Down
4 changes: 4 additions & 0 deletions ethernet/ethernetUtils.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ bool
ieee8021BridgeDot1dPortRowStatus_update (
ieee8021BridgeBaseEntry_t *poComponent,
ieee8021BridgeDot1dPortEntry_t *poEntry, uint8_t u8RowStatus);
bool
ieee8021QBridgeCVlanPortRowStatus_update (
ieee8021BridgeBaseEntry_t *poComponent,
ieee8021QBridgeCVlanPortEntry_t *poEntry, uint8_t u8RowStatus);
bool
ieee8021QBridgeVlanCurrentTable_vlanUpdate (
ieee8021BridgeBaseEntry_t *poComponent,
Expand Down
22 changes: 7 additions & 15 deletions ethernet/ieee8021QBridgeMib.c
Original file line number Diff line number Diff line change
Expand Up @@ -1059,12 +1059,11 @@ bool
ieee8021QBridgeCVlanPortRowStatus_handler (
ieee8021QBridgeCVlanPortEntry_t *poEntry, uint8_t u8RowStatus)
{
register bool bRetCode = false;
register uint8_t u8RealStatus = u8RowStatus & xRowStatus_mask_c;
register ieee8021BridgeBaseEntry_t *poIeee8021BridgeBaseEntry = NULL;
register ieee8021BridgeBasePortEntry_t *poIeee8021BridgeBasePortEntry = NULL;

if ((poIeee8021BridgeBaseEntry = ieee8021BridgeBaseTable_getByIndex (poEntry->u32ComponentId)) == NULL ||
(poIeee8021BridgeBasePortEntry = ieee8021BridgeBasePortTable_getByIndex (poEntry->u32ComponentId, poEntry->u32Number)) == NULL)
if ((poIeee8021BridgeBaseEntry = ieee8021BridgeBaseTable_getByIndex (poEntry->u32ComponentId)) == NULL)
{
goto ieee8021QBridgeCVlanPortRowStatus_handler_cleanup;
}
Expand All @@ -1089,9 +1088,7 @@ ieee8021QBridgeCVlanPortRowStatus_handler (
u8RealStatus = xRowStatus_notReady_c;
}

/* TODO */

if (!ieee8021BridgeBasePortRowStatus_handler (poIeee8021BridgeBaseEntry, poIeee8021BridgeBasePortEntry, u8RealStatus))
if (!ieee8021QBridgeCVlanPortRowStatus_update (poIeee8021BridgeBaseEntry, poEntry, u8RealStatus))
{
goto ieee8021QBridgeCVlanPortRowStatus_handler_cleanup;
}
Expand All @@ -1100,9 +1097,7 @@ ieee8021QBridgeCVlanPortRowStatus_handler (
break;

case xRowStatus_notInService_c:
/* TODO */

if (!ieee8021BridgeBasePortRowStatus_handler (poIeee8021BridgeBaseEntry, poIeee8021BridgeBasePortEntry, u8RealStatus))
if (!ieee8021QBridgeCVlanPortRowStatus_update (poIeee8021BridgeBaseEntry, poEntry, u8RealStatus))
{
goto ieee8021QBridgeCVlanPortRowStatus_handler_cleanup;
}
Expand All @@ -1119,9 +1114,7 @@ ieee8021QBridgeCVlanPortRowStatus_handler (
break;

case xRowStatus_destroy_c:
/* TODO */

if (!ieee8021BridgeBasePortRowStatus_handler (poIeee8021BridgeBaseEntry, poIeee8021BridgeBasePortEntry, u8RealStatus))
if (!ieee8021QBridgeCVlanPortRowStatus_update (poIeee8021BridgeBaseEntry, poEntry, u8RealStatus))
{
goto ieee8021QBridgeCVlanPortRowStatus_handler_cleanup;
}
Expand All @@ -1132,12 +1125,11 @@ ieee8021QBridgeCVlanPortRowStatus_handler (

ieee8021QBridgeCVlanPortRowStatus_handler_success:

return true;

bRetCode = true;

ieee8021QBridgeCVlanPortRowStatus_handler_cleanup:

return u8RowStatus & xRowStatus_fromParent_c;
return bRetCode || (u8RowStatus & xRowStatus_fromParent_c);
}

/* example iterator hook routines - using 'getNext' to do most of the work */
Expand Down

0 comments on commit 39c79ef

Please sign in to comment.