Commit 71c8c3cd authored by Michal Wasiak's avatar Michal Wasiak Committed by Adam Wujek

snmp/bridge_mib: update dot1qVlanStaticTable

Signed-off-by: 's avatarMichal Wasiak <michal.wasiak@gmail.com>
parent e694ef3f
......@@ -7,6 +7,7 @@ BRIDGE_DIRS= \
dot1qFdbTable \
dot1qPortVlanTable \
dot1qTpFdbTable \
dot1qVlanStaticTable \
BRIDGE_INCLUDE_DIRS:=$(addsuffix /Makefile,$(BRIDGE_DIRS))
BRIDGE_INCLUDE_DIRS:=$(addprefix $(BRIDGE_MIB_DIR)/,$(BRIDGE_INCLUDE_DIRS))
......
BRIDGE_MIB_SRCS += \
dot1qVlanStaticTable/dot1qVlanStaticTable.c \
dot1qVlanStaticTable/dot1qVlanStaticTable_data_get.c \
dot1qVlanStaticTable/dot1qVlanStaticTable_data_set.c \
dot1qVlanStaticTable/dot1qVlanStaticTable_data_access.c \
dot1qVlanStaticTable/dot1qVlanStaticTable_interface.c
......@@ -10,6 +10,9 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include "wrsSnmp.h"
#include "snmp_shmem.h"
/* include our parent header */
#include "dot1qVlanStaticTable.h"
......@@ -206,79 +209,46 @@ dot1qVlanStaticTable_container_load(netsnmp_container *container)
{
dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx;
size_t count = 0;
struct rtu_vlan_table_entry vlan_tab_local[NUM_VLANS];
struct rtu_port_entry ports_tab_local[HAL_MAX_PORTS];
int rtu_nports_local;
uint32_t untag_mask = 0;
/*
* temporary storage for index values
*/
/*
* dot1qVlanIndex(2)/VlanIndex/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/r/d/H
*/
u_long dot1qVlanIndex;
/*
* this example code is based on a data source that is a
* text file to be read and parsed.
*/
FILE *filep;
char line[MAX_LINE_SIZE];
int vlan_i;
int port_i;
DEBUGMSGTL(("verbose:dot1qVlanStaticTable:dot1qVlanStaticTable_container_load","called\n"));
/*
***************************************************
*** START EXAMPLE CODE ***
***---------------------------------------------***/
/*
* open our data file.
*/
filep = fopen("/etc/dummy.conf", "r");
if(NULL == filep) {
return MFD_RESOURCE_UNAVAILABLE;
if (0 != shmem_rtu_read_vlans(vlan_tab_local)) {
snmp_log(LOG_ERR, "unable to get vlans info from RTU\n");
return MFD_RESOURCE_UNAVAILABLE;
}
if (shmem_rtu_read_ports(ports_tab_local, &rtu_nports_local)) {
snmp_log(LOG_ERR, "unable to get ports info from RTU\n");
return MFD_RESOURCE_UNAVAILABLE;
}
/* build a mask of untagged ports (needed for dot1qVlanStaticUntaggedPorts) */
for (port_i = rtu_nports_local - 1; port_i >= 0; port_i--){
untag_mask <<= 1;
untag_mask |= ports_tab_local[port_i].untag & 1;
}
/*
***---------------------------------------------***
*** END EXAMPLE CODE ***
***************************************************/
/*
* TODO:351:M: |-> Load/update data in the dot1qVlanStaticTable container.
* |-> Load/update data in the dot1qVlanStaticTable container.
* loop over your dot1qVlanStaticTable data, allocate a rowreq context,
* set the index(es) [and data, optionally] and insert into
* the container.
*/
while( 1 ) {
/*
***************************************************
*** START EXAMPLE CODE ***
***---------------------------------------------***/
/*
* get a line (skip blank lines)
*/
do {
if (!fgets(line, sizeof(line), filep)) {
/* we're done */
fclose(filep);
filep = NULL;
}
} while (filep && (line[0] == '\n'));
for (vlan_i = 0; vlan_i < NUM_VLANS; vlan_i++) {
/* skip empty entires */
if ((vlan_tab_local[vlan_i].drop != 0)
&& (vlan_tab_local[vlan_i].port_mask == 0x0))
continue;
/*
* check for end of data
*/
if(NULL == filep)
break;
/*
* parse line into variables
*/
/*
***---------------------------------------------***
*** END EXAMPLE CODE ***
***************************************************/
/*
* TODO:352:M: | |-> set indexes in new dot1qVlanStaticTable rowreq context.
* |-> set indexes in new dot1qVlanStaticTable rowreq context.
* data context will be set from the param (unless NULL,
* in which case a new data context will be allocated)
*/
......@@ -287,9 +257,7 @@ dot1qVlanStaticTable_container_load(netsnmp_container *container)
snmp_log(LOG_ERR, "memory allocation failed\n");
return MFD_RESOURCE_UNAVAILABLE;
}
if(MFD_SUCCESS != dot1qVlanStaticTable_indexes_set(rowreq_ctx
, dot1qVlanIndex
)) {
if(MFD_SUCCESS != dot1qVlanStaticTable_indexes_set(rowreq_ctx, vlan_i)) {
snmp_log(LOG_ERR,"error setting index while loading "
"dot1qVlanStaticTable data.\n");
dot1qVlanStaticTable_release_rowreq_ctx(rowreq_ctx);
......@@ -297,151 +265,98 @@ dot1qVlanStaticTable_container_load(netsnmp_container *container)
}
/*
* TODO:352:r: | |-> populate dot1qVlanStaticTable data context.
* |-> populate dot1qVlanStaticTable data context.
* Populate data context here. (optionally, delay until row prep)
*/
/*
* TRANSIENT or semi-TRANSIENT data:
* copy data or save any info needed to do it in row_prep.
*/
/*
* setup/save data for dot1qVlanStaticName
* dot1qVlanStaticName(1)/SnmpAdminString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/H
*/
/*
* TODO:246:r: |-> Define dot1qVlanStaticName mapping.
* Map values between raw/native values and MIB values
*
* if(MFD_SUCCESS !=
* dot1qVlanStaticName_map(&rowreq_ctx->data.dot1qVlanStaticName, &rowreq_ctx->data.dot1qVlanStaticName_len,
* dot1qVlanStaticName, dot1qVlanStaticName_len, 0)) {
* return MFD_ERROR;
* }
*/
/*
* make sure there is enough space for dot1qVlanStaticName data
*/
if ((NULL == rowreq_ctx->data.dot1qVlanStaticName) ||
(rowreq_ctx->data.dot1qVlanStaticName_len <
(dot1qVlanStaticName_len* sizeof(dot1qVlanStaticName[0])))) {
snmp_log(LOG_ERR,"not enough space for value (dot1qVlanStaticName)\n");
return MFD_ERROR;
}
rowreq_ctx->data.dot1qVlanStaticName_len = dot1qVlanStaticName_len* sizeof(dot1qVlanStaticName[0]);
memcpy( rowreq_ctx->data.dot1qVlanStaticName, dot1qVlanStaticName, dot1qVlanStaticName_len* sizeof(dot1qVlanStaticName[0]) );
/*
* setup/save data for dot1qVlanStaticEgressPorts
* dot1qVlanStaticEgressPorts(2)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
*/
/*
* TODO:246:r: |-> Define dot1qVlanStaticEgressPorts mapping.
* Map values between raw/native values and MIB values
*
* if(MFD_SUCCESS !=
* dot1qVlanStaticEgressPorts_map(&rowreq_ctx->data.dot1qVlanStaticEgressPorts, &rowreq_ctx->data.dot1qVlanStaticEgressPorts_len,
* dot1qVlanStaticEgressPorts, dot1qVlanStaticEgressPorts_len, 0)) {
* return MFD_ERROR;
* }
*/
/*
* make sure there is enough space for dot1qVlanStaticEgressPorts data
*/
if ((NULL == rowreq_ctx->data.dot1qVlanStaticEgressPorts) ||
(rowreq_ctx->data.dot1qVlanStaticEgressPorts_len <
(dot1qVlanStaticEgressPorts_len* sizeof(dot1qVlanStaticEgressPorts[0])))) {
snmp_log(LOG_ERR,"not enough space for value (dot1qVlanStaticEgressPorts)\n");
return MFD_ERROR;
}
rowreq_ctx->data.dot1qVlanStaticEgressPorts_len = dot1qVlanStaticEgressPorts_len* sizeof(dot1qVlanStaticEgressPorts[0]);
memcpy( rowreq_ctx->data.dot1qVlanStaticEgressPorts, dot1qVlanStaticEgressPorts, dot1qVlanStaticEgressPorts_len* sizeof(dot1qVlanStaticEgressPorts[0]) );
/*
* setup/save data for dot1qVlanForbiddenEgressPorts
* dot1qVlanForbiddenEgressPorts(3)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
*/
/*
* TODO:246:r: |-> Define dot1qVlanForbiddenEgressPorts mapping.
* Map values between raw/native values and MIB values
*
* if(MFD_SUCCESS !=
* dot1qVlanForbiddenEgressPorts_map(&rowreq_ctx->data.dot1qVlanForbiddenEgressPorts, &rowreq_ctx->data.dot1qVlanForbiddenEgressPorts_len,
* dot1qVlanForbiddenEgressPorts, dot1qVlanForbiddenEgressPorts_len, 0)) {
* return MFD_ERROR;
* }
*/
/*
* make sure there is enough space for dot1qVlanForbiddenEgressPorts data
*/
if ((NULL == rowreq_ctx->data.dot1qVlanForbiddenEgressPorts) ||
(rowreq_ctx->data.dot1qVlanForbiddenEgressPorts_len <
(dot1qVlanForbiddenEgressPorts_len* sizeof(dot1qVlanForbiddenEgressPorts[0])))) {
snmp_log(LOG_ERR,"not enough space for value (dot1qVlanForbiddenEgressPorts)\n");
return MFD_ERROR;
}
rowreq_ctx->data.dot1qVlanForbiddenEgressPorts_len = dot1qVlanForbiddenEgressPorts_len* sizeof(dot1qVlanForbiddenEgressPorts[0]);
memcpy( rowreq_ctx->data.dot1qVlanForbiddenEgressPorts, dot1qVlanForbiddenEgressPorts, dot1qVlanForbiddenEgressPorts_len* sizeof(dot1qVlanForbiddenEgressPorts[0]) );
/*
* setup/save data for dot1qVlanStaticUntaggedPorts
* dot1qVlanStaticUntaggedPorts(4)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
*/
/*
* TODO:246:r: |-> Define dot1qVlanStaticUntaggedPorts mapping.
* Map values between raw/native values and MIB values
*
* if(MFD_SUCCESS !=
* dot1qVlanStaticUntaggedPorts_map(&rowreq_ctx->data.dot1qVlanStaticUntaggedPorts, &rowreq_ctx->data.dot1qVlanStaticUntaggedPorts_len,
* dot1qVlanStaticUntaggedPorts, dot1qVlanStaticUntaggedPorts_len, 0)) {
* return MFD_ERROR;
* }
*/
/*
* make sure there is enough space for dot1qVlanStaticUntaggedPorts data
*/
if ((NULL == rowreq_ctx->data.dot1qVlanStaticUntaggedPorts) ||
(rowreq_ctx->data.dot1qVlanStaticUntaggedPorts_len <
(dot1qVlanStaticUntaggedPorts_len* sizeof(dot1qVlanStaticUntaggedPorts[0])))) {
snmp_log(LOG_ERR,"not enough space for value (dot1qVlanStaticUntaggedPorts)\n");
return MFD_ERROR;
}
rowreq_ctx->data.dot1qVlanStaticUntaggedPorts_len = dot1qVlanStaticUntaggedPorts_len* sizeof(dot1qVlanStaticUntaggedPorts[0]);
memcpy( rowreq_ctx->data.dot1qVlanStaticUntaggedPorts, dot1qVlanStaticUntaggedPorts, dot1qVlanStaticUntaggedPorts_len* sizeof(dot1qVlanStaticUntaggedPorts[0]) );
/*
* setup/save data for dot1qVlanStaticRowStatus
* dot1qVlanStaticRowStatus(5)/RowStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
*/
/*
* TODO:246:r: |-> Define dot1qVlanStaticRowStatus mapping.
* Map values between raw/native values and MIB values
*
* enums usually need mapping.
*/
if(MFD_SUCCESS !=
dot1qVlanStaticRowStatus_map(&rowreq_ctx->data.dot1qVlanStaticRowStatus, dot1qVlanStaticRowStatus )) {
return MFD_ERROR;
}
/*
/*
* setup/save data for dot1qVlanStaticName
* dot1qVlanStaticName(1)/SnmpAdminString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/H
*/
if (NULL == rowreq_ctx->data.dot1qVlanStaticName) {
snmp_log(LOG_ERR,"not enough space for value (dot1qVlanStaticName)\n");
return MFD_ERROR;
}
rowreq_ctx->data.dot1qVlanStaticName_len = snprintf(rowreq_ctx->data.dot1qVlanStaticName, 32, "VLAN%d", vlan_i);
/*
* setup/save data for dot1qVlanStaticEgressPorts
* dot1qVlanStaticEgressPorts(2)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
*/
/*
* |-> Define dot1qVlanStaticEgressPorts mapping.
*/
/*
* make sure there is enough space for dot1qVlanStaticEgressPorts data
*/
if (NULL == rowreq_ctx->data.dot1qVlanStaticEgressPorts) {
snmp_log(LOG_ERR,"not enough space for value (dot1qVlanStaticEgressPorts)\n");
return MFD_ERROR;
}
convert_portmask_to_snmp_bitmask(hal_nports_local,
vlan_tab_local[vlan_i].port_mask & RTU_PMASK_MAX(hal_nports_local),
rowreq_ctx->data.dot1qVlanStaticEgressPorts,
&rowreq_ctx->data.dot1qVlanStaticEgressPorts_len);
/*
* setup/save data for dot1qVlanForbiddenEgressPorts
* dot1qVlanForbiddenEgressPorts(3)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
*/
/*
* |-> Define dot1qVlanForbiddenEgressPorts mapping.
*/
/*
* make sure there is enough space for dot1qVlanForbiddenEgressPorts data
*/
if (NULL == rowreq_ctx->data.dot1qVlanForbiddenEgressPorts) {
snmp_log(LOG_ERR,"not enough space for value (dot1qVlanForbiddenEgressPorts)\n");
return MFD_ERROR;
}
/* use the same lenght of a mast as above (rowreq_ctx->data.dot1qVlanForbiddenEgressPorts_len) */
rowreq_ctx->data.dot1qVlanForbiddenEgressPorts_len = rowreq_ctx->data.dot1qVlanStaticEgressPorts_len;
/* clear mask */
memset( rowreq_ctx->data.dot1qVlanForbiddenEgressPorts, 0, rowreq_ctx->data.dot1qVlanForbiddenEgressPorts_len);
/*
* setup/save data for dot1qVlanStaticUntaggedPorts
* dot1qVlanStaticUntaggedPorts(4)/PortList/ASN_OCTET_STR/char(char)//L/A/W/e/r/d/h
*/
/*
* |-> Define dot1qVlanStaticUntaggedPorts mapping.
* Map values between raw/native values and MIB values
*/
/*
* make sure there is enough space for dot1qVlanStaticUntaggedPorts data
*/
if (NULL == rowreq_ctx->data.dot1qVlanStaticUntaggedPorts) {
snmp_log(LOG_ERR,"not enough space for value (dot1qVlanStaticUntaggedPorts)\n");
return MFD_ERROR;
}
convert_portmask_to_snmp_bitmask(hal_nports_local,
vlan_tab_local[vlan_i].port_mask & untag_mask,
rowreq_ctx->data.dot1qVlanStaticUntaggedPorts,
&rowreq_ctx->data.dot1qVlanStaticUntaggedPorts_len);
/*
* setup/save data for dot1qVlanStaticRowStatus
* dot1qVlanStaticRowStatus(5)/RowStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
*/
/*
* |-> Define dot1qVlanStaticRowStatus mapping.
* Map values between raw/native values and MIB values
*
* hardcode to active(1)
*/
rowreq_ctx->data.dot1qVlanStaticRowStatus = ROWSTATUS_ACTIVE;
/*
* insert into table container
*/
CONTAINER_INSERT(container, rowreq_ctx);
++count;
}
/*
***************************************************
*** START EXAMPLE CODE ***
***---------------------------------------------***/
if(NULL != filep)
fclose(filep);
/*
***---------------------------------------------***
*** END EXAMPLE CODE ***
***************************************************/
DEBUGMSGT(("verbose:dot1qVlanStaticTable:dot1qVlanStaticTable_container_load",
"inserted %d records\n", count));
......
......@@ -466,86 +466,6 @@ dot1qVlanStaticUntaggedPorts_get( dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx, c
return MFD_SUCCESS;
} /* dot1qVlanStaticUntaggedPorts_get */
/*---------------------------------------------------------------------
* Q-BRIDGE-MIB::dot1qVlanStaticEntry.dot1qVlanStaticRowStatus
* dot1qVlanStaticRowStatus is subid 5 of dot1qVlanStaticEntry.
* Its status is Current, and its access level is Create.
* OID: .1.3.6.1.2.1.17.7.1.4.3.1.5
* Description:
This object indicates the status of this entry.
*
* Attributes:
* accessible 1 isscalar 0 enums 1 hasdefval 0
* readable 1 iscolumn 1 ranges 0 hashint 0
* settable 1
*
* Enum range: 4/8. Values: active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), destroy(6)
*
* Its syntax is RowStatus (based on perltype INTEGER)
* The net-snmp type is ASN_INTEGER. The C type decl is long (u_long)
*/
/**
* map a value from its original native format to the MIB format.
*
* @retval MFD_SUCCESS : success
* @retval MFD_ERROR : Any other error
*
* @note parameters follow the memset convention (dest, src).
*
* @note generation and use of this function can be turned off by re-running
* mib2c after adding the following line to the file
* defaults/node-dot1qVlanStaticRowStatus.m2d :
* @eval $m2c_node_skip_mapping = 1@
*
* @remark
* If the values for your data type don't exactly match the
* possible values defined by the mib, you should map them here.
* Otherwise, just do a direct copy.
*/
int
dot1qVlanStaticRowStatus_map(u_long *mib_dot1qVlanStaticRowStatus_val_ptr, u_long raw_dot1qVlanStaticRowStatus_val)
{
netsnmp_assert(NULL != mib_dot1qVlanStaticRowStatus_val_ptr);
DEBUGMSGTL(("verbose:dot1qVlanStaticTable:dot1qVlanStaticRowStatus_map","called\n"));
/*
* TODO:241:o: |-> Implement dot1qVlanStaticRowStatus enum mapping.
* uses INTERNAL_* macros defined in the header files
*/
switch(raw_dot1qVlanStaticRowStatus_val) {
case INTERNAL_DOT1QVLANSTATICTABLE_DOT1QVLANSTATICROWSTATUS_ACTIVE:
*mib_dot1qVlanStaticRowStatus_val_ptr = ROWSTATUS_ACTIVE;
break;
case INTERNAL_DOT1QVLANSTATICTABLE_DOT1QVLANSTATICROWSTATUS_NOTINSERVICE:
*mib_dot1qVlanStaticRowStatus_val_ptr = ROWSTATUS_NOTINSERVICE;
break;
case INTERNAL_DOT1QVLANSTATICTABLE_DOT1QVLANSTATICROWSTATUS_NOTREADY:
*mib_dot1qVlanStaticRowStatus_val_ptr = ROWSTATUS_NOTREADY;
break;
case INTERNAL_DOT1QVLANSTATICTABLE_DOT1QVLANSTATICROWSTATUS_CREATEANDGO:
*mib_dot1qVlanStaticRowStatus_val_ptr = ROWSTATUS_CREATEANDGO;
break;
case INTERNAL_DOT1QVLANSTATICTABLE_DOT1QVLANSTATICROWSTATUS_CREATEANDWAIT:
*mib_dot1qVlanStaticRowStatus_val_ptr = ROWSTATUS_CREATEANDWAIT;
break;
case INTERNAL_DOT1QVLANSTATICTABLE_DOT1QVLANSTATICROWSTATUS_DESTROY:
*mib_dot1qVlanStaticRowStatus_val_ptr = ROWSTATUS_DESTROY;
break;
default:
snmp_log(LOG_ERR, "couldn't map value %ld for dot1qVlanStaticRowStatus\n", raw_dot1qVlanStaticRowStatus_val );
return MFD_ERROR;
}
return MFD_SUCCESS;
} /* dot1qVlanStaticRowStatus_map */
/**
* Extract the current value of the dot1qVlanStaticRowStatus data.
*
......
......@@ -43,15 +43,10 @@ extern "C" {
*/
int dot1qVlanIndex_map(u_long *mib_dot1qVlanIndex_val_ptr, u_long raw_dot1qVlanIndex_val);
int dot1qVlanStaticName_map(char **mib_dot1qVlanStaticName_val_ptr_ptr, size_t *mib_dot1qVlanStaticName_val_ptr_len_ptr, char *raw_dot1qVlanStaticName_val_ptr, size_t raw_dot1qVlanStaticName_val_ptr_len, int allow_realloc);
int dot1qVlanStaticName_get( dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx, char **dot1qVlanStaticName_val_ptr_ptr, size_t *dot1qVlanStaticName_val_ptr_len_ptr );
int dot1qVlanStaticEgressPorts_map(char **mib_dot1qVlanStaticEgressPorts_val_ptr_ptr, size_t *mib_dot1qVlanStaticEgressPorts_val_ptr_len_ptr, char *raw_dot1qVlanStaticEgressPorts_val_ptr, size_t raw_dot1qVlanStaticEgressPorts_val_ptr_len, int allow_realloc);
int dot1qVlanStaticEgressPorts_get( dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx, char **dot1qVlanStaticEgressPorts_val_ptr_ptr, size_t *dot1qVlanStaticEgressPorts_val_ptr_len_ptr );
int dot1qVlanForbiddenEgressPorts_map(char **mib_dot1qVlanForbiddenEgressPorts_val_ptr_ptr, size_t *mib_dot1qVlanForbiddenEgressPorts_val_ptr_len_ptr, char *raw_dot1qVlanForbiddenEgressPorts_val_ptr, size_t raw_dot1qVlanForbiddenEgressPorts_val_ptr_len, int allow_realloc);
int dot1qVlanForbiddenEgressPorts_get( dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx, char **dot1qVlanForbiddenEgressPorts_val_ptr_ptr, size_t *dot1qVlanForbiddenEgressPorts_val_ptr_len_ptr );
int dot1qVlanStaticUntaggedPorts_map(char **mib_dot1qVlanStaticUntaggedPorts_val_ptr_ptr, size_t *mib_dot1qVlanStaticUntaggedPorts_val_ptr_len_ptr, char *raw_dot1qVlanStaticUntaggedPorts_val_ptr, size_t raw_dot1qVlanStaticUntaggedPorts_val_ptr_len, int allow_realloc);
int dot1qVlanStaticUntaggedPorts_get( dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx, char **dot1qVlanStaticUntaggedPorts_val_ptr_ptr, size_t *dot1qVlanStaticUntaggedPorts_val_ptr_len_ptr );
int dot1qVlanStaticRowStatus_map(u_long *mib_dot1qVlanStaticRowStatus_val_ptr, u_long raw_dot1qVlanStaticRowStatus_val);
int dot1qVlanStaticRowStatus_get( dot1qVlanStaticTable_rowreq_ctx *rowreq_ctx, u_long * dot1qVlanStaticRowStatus_val_ptr );
......
......@@ -16,6 +16,7 @@
#include "dot1qFdbTable/dot1qFdbTable.h"
#include "dot1qPortVlanTable/dot1qPortVlanTable.h"
#include "dot1qTpFdbTable/dot1qTpFdbTable.h"
#include "dot1qVlanStaticTable/dot1qVlanStaticTable.h"
void init_bridge_mib(void)
{
......@@ -27,4 +28,5 @@ void init_bridge_mib(void)
init_dot1qFdbTable();
init_dot1qPortVlanTable();
init_dot1qTpFdbTable();
init_dot1qVlanStaticTable();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment