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 May 19, 2015
1 parent 99d36f4 commit 10e4f6e
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 127 deletions.
129 changes: 20 additions & 109 deletions ethernet/ieee8021BridgeMib.c
Original file line number Diff line number Diff line change
Expand Up @@ -2291,113 +2291,13 @@ ieee8021BridgeBaseIfToPortTable_init (void)
/* Initialise the contents of the table here */
}

#if 0
static int8_t
ieee8021BridgeBaseIfToPortTable_BTreeNodeCmp (
xBTree_Node_t *pNode1, xBTree_Node_t *pNode2, xBTree_t *pBTree)
{
register ieee8021BridgeBaseIfToPortEntry_t *pEntry1 = xBTree_entry (pNode1, ieee8021BridgeBaseIfToPortEntry_t, oBTreeNode);
register ieee8021BridgeBaseIfToPortEntry_t *pEntry2 = xBTree_entry (pNode2, ieee8021BridgeBaseIfToPortEntry_t, oBTreeNode);

return
(pEntry1->u32Index < pEntry2->u32Index) ? -1:
(pEntry1->u32Index == pEntry2->u32Index) ? 0: 1;
}

xBTree_t oIeee8021BridgeBaseIfToPortTable_BTree = xBTree_initInline (&ieee8021BridgeBaseIfToPortTable_BTreeNodeCmp);

/* create a new row in the table */
ieee8021BridgeBaseIfToPortEntry_t *
ieee8021BridgeBaseIfToPortTable_createEntry (
uint32_t u32Index)
{
register ieee8021BridgeBaseIfToPortEntry_t *poEntry = NULL;

if ((poEntry = xBuffer_cAlloc (sizeof (*poEntry))) == NULL)
{
return NULL;
}

poEntry->u32Index = u32Index;
if (xBTree_nodeFind (&poEntry->oBTreeNode, &oIeee8021BridgeBaseIfToPortTable_BTree) != NULL)
{
xBuffer_free (poEntry);
return NULL;
}

xBTree_nodeAdd (&poEntry->oBTreeNode, &oIeee8021BridgeBaseIfToPortTable_BTree);
return poEntry;
}

ieee8021BridgeBaseIfToPortEntry_t *
ieee8021BridgeBaseIfToPortTable_getByIndex (
uint32_t u32Index)
{
register ieee8021BridgeBaseIfToPortEntry_t *poTmpEntry = NULL;
register xBTree_Node_t *poNode = NULL;

if ((poTmpEntry = xBuffer_cAlloc (sizeof (*poTmpEntry))) == NULL)
{
return NULL;
}

poTmpEntry->u32Index = u32Index;
if ((poNode = xBTree_nodeFind (&poTmpEntry->oBTreeNode, &oIeee8021BridgeBaseIfToPortTable_BTree)) == NULL)
{
xBuffer_free (poTmpEntry);
return NULL;
}

xBuffer_free (poTmpEntry);
return xBTree_entry (poNode, ieee8021BridgeBaseIfToPortEntry_t, oBTreeNode);
}

ieee8021BridgeBaseIfToPortEntry_t *
ieee8021BridgeBaseIfToPortTable_getNextIndex (
uint32_t u32Index)
{
register ieee8021BridgeBaseIfToPortEntry_t *poTmpEntry = NULL;
register xBTree_Node_t *poNode = NULL;

if ((poTmpEntry = xBuffer_cAlloc (sizeof (*poTmpEntry))) == NULL)
{
return NULL;
}

poTmpEntry->u32Index = u32Index;
if ((poNode = xBTree_nodeFindNext (&poTmpEntry->oBTreeNode, &oIeee8021BridgeBaseIfToPortTable_BTree)) == NULL)
{
xBuffer_free (poTmpEntry);
return NULL;
}

xBuffer_free (poTmpEntry);
return xBTree_entry (poNode, ieee8021BridgeBaseIfToPortEntry_t, oBTreeNode);
}

/* remove a row from the table */
void
ieee8021BridgeBaseIfToPortTable_removeEntry (ieee8021BridgeBaseIfToPortEntry_t *poEntry)
{
if (poEntry == NULL ||
xBTree_nodeFind (&poEntry->oBTreeNode, &oIeee8021BridgeBaseIfToPortTable_BTree) == NULL)
{
return; /* Nothing to remove */
}

xBTree_nodeRemove (&poEntry->oBTreeNode, &oIeee8021BridgeBaseIfToPortTable_BTree);
xBuffer_free (poEntry); /* XXX - release any other internal resources */
return;
}
#endif

/* example iterator hook routines - using 'getNext' to do most of the work */
netsnmp_variable_list *
ieee8021BridgeBaseIfToPortTable_getFirst (
void **my_loop_context, void **my_data_context,
netsnmp_variable_list *put_index_data, netsnmp_iterator_info *mydata)
{
*my_loop_context = xBTree_nodeGetFirst (&oIeee8021BridgePhyData_If_BTree);
*my_loop_context = xBTree_nodeGetFirst (&oIeee8021BridgePhyPortTable_If_BTree);
return ieee8021BridgeBaseIfToPortTable_getNext (my_loop_context, my_data_context, put_index_data, mydata);
}

Expand All @@ -2406,18 +2306,18 @@ ieee8021BridgeBaseIfToPortTable_getNext (
void **my_loop_context, void **my_data_context,
netsnmp_variable_list *put_index_data, netsnmp_iterator_info *mydata)
{
ieee8021BridgePhyData_t *poEntry = NULL;
ieee8021BridgePhyPortEntry_t *poEntry = NULL;
netsnmp_variable_list *idx = put_index_data;

if (*my_loop_context == NULL)
{
return NULL;
}
poEntry = xBTree_entry (*my_loop_context, ieee8021BridgePhyData_t, oIf_BTreeNode);
poEntry = xBTree_entry (*my_loop_context, ieee8021BridgePhyPortEntry_t, oIf_BTreeNode);

snmp_set_var_typed_integer (idx, ASN_INTEGER, poEntry->u32IfIndex);
*my_data_context = (void*) &poEntry->oIf;
*my_loop_context = (void*) xBTree_nodeGetNext (&poEntry->oIf_BTreeNode, &oIeee8021BridgePhyData_If_BTree);
*my_loop_context = (void*) xBTree_nodeGetNext (&poEntry->oIf_BTreeNode, &oIeee8021BridgePhyPortTable_If_BTree);
return put_index_data;
}

Expand All @@ -2426,11 +2326,11 @@ ieee8021BridgeBaseIfToPortTable_get (
void **my_data_context,
netsnmp_variable_list *put_index_data, netsnmp_iterator_info *mydata)
{
ieee8021BridgePhyData_t *poEntry = NULL;
ieee8021BridgePhyPortEntry_t *poEntry = NULL;
register netsnmp_variable_list *idx1 = put_index_data;

poEntry = ieee8021BridgePhyData_getByIndex (
*idx1->val.integer, 0);
poEntry = ieee8021BridgePhyPortTable_getByIndex (
*idx1->val.integer);
if (poEntry == NULL)
{
return false;
Expand Down Expand Up @@ -2525,7 +2425,6 @@ ieee8021BridgePhyPortTable_init (void)
/* Initialise the contents of the table here */
}

#if 0
static int8_t
ieee8021BridgePhyPortTable_BTreeNodeCmp (
xBTree_Node_t *pNode1, xBTree_Node_t *pNode2, xBTree_t *pBTree)
Expand All @@ -2538,7 +2437,20 @@ ieee8021BridgePhyPortTable_BTreeNodeCmp (
(pEntry1->u32Port == pEntry2->u32Port) ? 0: 1;
}

static int8_t
ieee8021BridgePhyPortTable_If_BTreeNodeCmp (
xBTree_Node_t *pNode1, xBTree_Node_t *pNode2, xBTree_t *pBTree)
{
register ieee8021BridgePhyPortEntry_t *pEntry1 = xBTree_entry (pNode1, ieee8021BridgePhyPortEntry_t, oIf_BTreeNode);
register ieee8021BridgePhyPortEntry_t *pEntry2 = xBTree_entry (pNode2, ieee8021BridgePhyPortEntry_t, oIf_BTreeNode);

return
(pEntry1->u32IfIndex < pEntry2->u32IfIndex) ? -1:
(pEntry1->u32IfIndex == pEntry2->u32IfIndex) ? 0: 1;
}

xBTree_t oIeee8021BridgePhyPortTable_BTree = xBTree_initInline (&ieee8021BridgePhyPortTable_BTreeNodeCmp);
xBTree_t oIeee8021BridgePhyPortTable_If_BTree = xBTree_initInline (&ieee8021BridgePhyPortTable_If_BTreeNodeCmp);

/* create a new row in the table */
ieee8021BridgePhyPortEntry_t *
Expand Down Expand Up @@ -2623,7 +2535,6 @@ ieee8021BridgePhyPortTable_removeEntry (ieee8021BridgePhyPortEntry_t *poEntry)
xBuffer_free (poEntry); /* XXX - release any other internal resources */
return;
}
#endif

/* example iterator hook routines - using 'getNext' to do most of the work */
netsnmp_variable_list *
Expand Down
39 changes: 21 additions & 18 deletions ethernet/ieee8021BridgeMib.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ typedef struct ieee8021BridgeBasePortEntry_t ieee8021BridgeBasePortEntry_t;
#include "lib/snmp.h"

#include <stdbool.h>
#include <stdint.h>

#define TOBE_REPLACED 1

Expand Down Expand Up @@ -328,8 +329,8 @@ typedef struct ieee8021BridgeBaseIfToPortEntry_t
// uint32_t u32Index;

/* Column values */
// uint32_t u32ComponentId;
// uint32_t u32Port;
uint32_t u32ComponentId;
uint32_t u32Port;

// xBTree_Node_t oBTreeNode;
} ieee8021BridgeBaseIfToPortEntry_t;
Expand All @@ -338,18 +339,6 @@ typedef struct ieee8021BridgeBaseIfToPortEntry_t

/* ieee8021BridgeBaseIfToPortTable table mapper */
void ieee8021BridgeBaseIfToPortTable_init (void);
ieee8021BridgeBaseIfToPortEntry_t * ieee8021BridgeBaseIfToPortTable_createEntry (
uint32_t u32Index);
ieee8021BridgeBaseIfToPortEntry_t * ieee8021BridgeBaseIfToPortTable_getByIndex (
uint32_t u32Index);
ieee8021BridgeBaseIfToPortEntry_t * ieee8021BridgeBaseIfToPortTable_getNextIndex (
uint32_t u32Index);
void ieee8021BridgeBaseIfToPortTable_removeEntry (ieee8021BridgeBaseIfToPortEntry_t *poEntry);
ieee8021BridgeBaseIfToPortEntry_t *ieee8021BridgeBaseIfToPortTable_createExt (
uint32_t u32Index);
bool ieee8021BridgeBaseIfToPortTable_removeExt (ieee8021BridgeBaseIfToPortEntry_t *poEntry);
bool ieee8021BridgeBaseIfToPortTable_createHier (ieee8021BridgeBaseIfToPortEntry_t *poEntry);
bool ieee8021BridgeBaseIfToPortTable_removeHier (ieee8021BridgeBaseIfToPortEntry_t *poEntry);
#ifdef SNMP_SRC
Netsnmp_First_Data_Point ieee8021BridgeBaseIfToPortTable_getFirst;
Netsnmp_Next_Data_Point ieee8021BridgeBaseIfToPortTable_getNext;
Expand All @@ -371,19 +360,33 @@ Netsnmp_Node_Handler ieee8021BridgeBaseIfToPortTable_mapper;
typedef struct ieee8021BridgePhyPortEntry_t
{
/* Index values */
// uint32_t u32Port;
uint32_t u32Port;

/* Column values */
// uint32_t u32IfIndex;
uint32_t u32IfIndex;
uint8_t au8MacAddress[6];
size_t u16MacAddress_len; /* # of uint8_t elements */
// uint32_t u32ToComponentId;
// uint32_t u32ToInternalPort;

// xBTree_Node_t oBTreeNode;
ieee8021BridgeBaseIfToPortEntry_t oIf;

uint32_t u32ChassisId;
uint8_t au8TypeCapabilities[2];
size_t u16TypeCapabilities_len; /* # of uint8_t elements */
int32_t i32Type;
int32_t i32Mtu;
uint8_t u8AdminStatus;
uint8_t u8OperStatus;
uint8_t au8AdminFlags[3];
uint8_t au8OperFlags[3];

xBTree_Node_t oBTreeNode;
xBTree_Node_t oIf_BTreeNode;
} ieee8021BridgePhyPortEntry_t;

// extern xBTree_t oIeee8021BridgePhyPortTable_BTree;
extern xBTree_t oIeee8021BridgePhyPortTable_BTree;
extern xBTree_t oIeee8021BridgePhyPortTable_If_BTree;

/* ieee8021BridgePhyPortTable table mapper */
void ieee8021BridgePhyPortTable_init (void);
Expand Down

0 comments on commit 10e4f6e

Please sign in to comment.