Skip to content

Commit

Permalink
[nes]: GMPLS changes ...
Browse files Browse the repository at this point in the history
  • Loading branch information
nes-repo committed Aug 19, 2015
1 parent 9eb8135 commit b382a5f
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 69 deletions.
86 changes: 23 additions & 63 deletions mpls/neMplsTeMIB.c
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,7 @@ neMplsTunnelTable_getNext (
snmp_set_var_typed_integer (idx, ASN_UNSIGNED, poEntry->u32IngressLSRId);
idx = idx->next_variable;
snmp_set_var_typed_integer (idx, ASN_UNSIGNED, poEntry->u32EgressLSRId);
*my_data_context = (void*) &poEntry->oNe;
*my_data_context = (void*) poEntry;
*my_loop_context = (void*) xBTree_nodeGetNext (&poEntry->oBTreeNode, &oMplsTunnelTable_BTree);
return put_index_data;
}
Expand All @@ -608,7 +608,7 @@ neMplsTunnelTable_get (
return false;
}

*my_data_context = (void*) &poEntry->oNe;
*my_data_context = (void*) poEntry;
return true;
}

Expand All @@ -623,6 +623,7 @@ neMplsTunnelTable_mapper (
netsnmp_request_info *request;
netsnmp_table_request_info *table_info;
neMplsTunnelEntry_t *table_entry;
register mplsTunnelEntry_t *poEntry = NULL;
void *pvOldDdata = NULL;
int ret;

Expand All @@ -634,13 +635,14 @@ neMplsTunnelTable_mapper (
case MODE_GET:
for (request = requests; request != NULL; request = request->next)
{
table_entry = (neMplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
poEntry = (mplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
table_info = netsnmp_extract_table_info (request);
if (table_entry == NULL)
if (poEntry == NULL)
{
netsnmp_set_request_error (reqinfo, request, SNMP_NOSUCHINSTANCE);
continue;
}
table_entry = &poEntry->oNe;

switch (table_info->colnum)
{
Expand Down Expand Up @@ -697,8 +699,9 @@ neMplsTunnelTable_mapper (
case MODE_SET_RESERVE1:
for (request = requests; request != NULL; request = request->next)
{
table_entry = (neMplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
poEntry = (mplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
table_info = netsnmp_extract_table_info (request);
table_entry = &poEntry->oNe;

switch (table_info->colnum)
{
Expand Down Expand Up @@ -761,12 +764,14 @@ neMplsTunnelTable_mapper (
case MODE_SET_RESERVE2:
for (request = requests; request != NULL; request = request->next)
{
table_entry = (neMplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
poEntry = (mplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
table_info = netsnmp_extract_table_info (request);
register netsnmp_variable_list *idx1 = table_info->indexes;
register netsnmp_variable_list *idx2 = idx1->next_variable;
register netsnmp_variable_list *idx3 = idx2->next_variable;
register netsnmp_variable_list *idx4 = idx3->next_variable;
if (poEntry == NULL)
{
netsnmp_set_request_error (reqinfo, request, SNMP_NOSUCHINSTANCE);
continue;
}
table_entry = &poEntry->oNe;

switch (table_info->colnum)
{
Expand All @@ -775,72 +780,26 @@ neMplsTunnelTable_mapper (
case NEMPLSTUNNELPATHCOMPMODEL:
case NEMPLSTUNNELPEERIFINDEX:
case NEMPLSTUNNELDIFFSERVTYPE:
if (table_entry == NULL)
if (poEntry->u8RowStatus == xRowStatus_active_c || poEntry->u8RowStatus == xRowStatus_notReady_c)
{
if (/* TODO */ TOBE_REPLACED != TOBE_REPLACED)
{
netsnmp_set_request_error (reqinfo, request, SNMP_ERR_INCONSISTENTVALUE);
return SNMP_ERR_NOERROR;
}

table_entry = neMplsTunnelTable_createEntry (
*idx1->val.integer,
*idx2->val.integer,
*idx3->val.integer,
*idx4->val.integer);
if (table_entry != NULL)
{
netsnmp_insert_iterator_context (request, table_entry);
netsnmp_request_add_list_data (request, netsnmp_create_data_list (ROLLBACK_BUFFER, table_entry, &xBuffer_free));
}
else
{
netsnmp_set_request_error (reqinfo, request, SNMP_ERR_RESOURCEUNAVAILABLE);
return SNMP_ERR_NOERROR;
}
}
break;
default:
if (table_entry == NULL)
{
netsnmp_set_request_error (reqinfo, request, SNMP_NOSUCHINSTANCE);
netsnmp_set_request_error (reqinfo, request, SNMP_ERR_RESOURCEUNAVAILABLE);
return SNMP_ERR_NOERROR;
}
break;
}
}
break;

case MODE_SET_FREE:
for (request = requests; request != NULL; request = request->next)
{
pvOldDdata = netsnmp_request_get_list_data (request, ROLLBACK_BUFFER);
table_entry = (neMplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
table_info = netsnmp_extract_table_info (request);
if (table_entry == NULL || pvOldDdata == NULL)
{
continue;
}

switch (table_info->colnum)
{
case NEMPLSTUNNELCALLID:
case NEMPLSTUNNELRESOURCEINDEX:
case NEMPLSTUNNELPATHCOMPMODEL:
case NEMPLSTUNNELPEERIFINDEX:
case NEMPLSTUNNELDIFFSERVTYPE:
neMplsTunnelTable_removeEntry (table_entry);
netsnmp_request_remove_list_entry (request, ROLLBACK_BUFFER);
break;
}
}
break;

case MODE_SET_ACTION:
for (request = requests; request != NULL; request = request->next)
{
pvOldDdata = netsnmp_request_get_list_data (request, ROLLBACK_BUFFER);
table_entry = (neMplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
poEntry = (mplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
table_info = netsnmp_extract_table_info (request);
table_entry = &poEntry->oNe;

switch (table_info->colnum)
{
Expand Down Expand Up @@ -940,12 +899,13 @@ neMplsTunnelTable_mapper (
for (request = requests; request != NULL; request = request->next)
{
pvOldDdata = netsnmp_request_get_list_data (request, ROLLBACK_BUFFER);
table_entry = (neMplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
poEntry = (mplsTunnelEntry_t*) netsnmp_extract_iterator_context (request);
table_info = netsnmp_extract_table_info (request);
if (table_entry == NULL || pvOldDdata == NULL)
if (poEntry == NULL || pvOldDdata == NULL)
{
continue;
}
table_entry = &poEntry->oNe;

switch (table_info->colnum)
{
Expand Down
12 changes: 6 additions & 6 deletions mpls/neMplsTeMIB.h
Original file line number Diff line number Diff line change
Expand Up @@ -180,10 +180,10 @@ enum
typedef struct neMplsTunnelEntry_t
{
/* Index values */
uint32_t u32Index;
uint32_t u32Instance;
uint32_t u32IngressLSRId;
uint32_t u32EgressLSRId;
// uint32_t u32Index;
// uint32_t u32Instance;
// uint32_t u32IngressLSRId;
// uint32_t u32EgressLSRId;

/* Column values */
uint32_t u32CallId;
Expand All @@ -205,10 +205,10 @@ typedef struct neMplsTunnelEntry_t
size_t u16ProtectionStatus_len; /* # of uint8_t elements */
int32_t i32DiffServType;

xBTree_Node_t oBTreeNode;
// xBTree_Node_t oBTreeNode;
} neMplsTunnelEntry_t;

extern xBTree_t oNeMplsTunnelTable_BTree;
// extern xBTree_t oNeMplsTunnelTable_BTree;

/* neMplsTunnelTable table mapper */
void neMplsTunnelTable_init (void);
Expand Down

0 comments on commit b382a5f

Please sign in to comment.