📄 macbrcfg.c
字号:
/*
* $Log:: /OEM Source Code/Spantree/macbrcfg.c $
*
* 1 12/04/98 2:36p Release Engineer
* code cleanup, bug fixes, code style changes, linted, system level
* test
* STP v4.3.0
*
* 2 3/27/96 7:07p Ross
* Initial check in with source safe
*
* 1 2/06/96 11:06p Ross
* Adding new version control
*/
/* $Modname: macbrcfg.c$ $version: 1.4$ $date: 03/31/95$ */
/*
* $lgb$
1.0 03/23/94 ross added configuration file for nvram support.
1.1 03/23/94 ross added copyright.
1.2 04/05/94 ross added port state configuration.
1.3 06/15/94 ross cosmetic changes and snmp access routines.
1.4 03/31/95 ross Changes for new rwutils library.
* $lge$
*/
/************************************************************************/
/* Copyright (C) 1989-1998 RouterWare, Inc. */
/* Unpublished - rights reserved under the Copyright Laws of the */
/* United States. Use, duplication, or disclosure by the */
/* Government is subject to restrictions as set forth in */
/* subparagraph (c)(1)(ii) of the Rights in Technical Data and */
/* Computer Software clause at 252.227-7013. */
/* RouterWare, Inc., 3961 MacArthur Blvd. Suite 212, Newport Beach Ca */
/************************************************************************/
#include <stddef.h>
#include <string.h>
#include "macbridg.h"
#include "vnvstp.h"
/****************************************************************************/
enum TEST mac_bridge_control (enum PROTOCOL_CONTROL_OPERATION command,ULONG parameter_0,ULONG parameter_1)
{
switch (command)
{
case IS_PROTOCOL_STACK_ENABLED:
*((BYTE_ENUM (BOOLEAN) *) parameter_1) = (BYTE_ENUM (BOOLEAN)) stp_class.enabled;
break;
case GET_NUMBER_OF_PROTOCOL_STACKS_VIRTUAL_PORTS:
*((USHORT *) parameter_1) = (USHORT)stp_class.number_of_spanning_tree_ports;
break;
case GET_PROTOCOL_STACK_TYPE:
*((BYTE_ENUM (PROTOCOL_STACK_TYPE) *) parameter_1) = SPANNING_TREE_STACK;
break;
case GET_PROTOCOL_STACK_PROTOCOL_ID:
*((USHORT_ENUM (SNAP_PROTOCOL_ID) *) parameter_1) = SNAP_8023_BRIDGED_PACKET_WITH_CRC; /* place holder, not used */
break;
case GET_PROTOCOL_STACK_SSAP:
*((BYTE_ENUM (SAP_TYPES) *) parameter_1) = LSAP_BRIDGE_SPANNING_TREE_PROTOCOL;
break;
case GET_PROTOCOL_STACK_DSAP:
*((BYTE_ENUM (SAP_TYPES) *) parameter_1) = LSAP_BRIDGE_SPANNING_TREE_PROTOCOL;
break;
case GET_PROTOCOL_STACK_VIRTUAL_PORT_PACKET_TYPE:
*((USHORT_ENUM (LSL_PACKET_TYPE) *) parameter_1) = RAW_8023;
break;
case GET_PROTOCOL_STACK_REAL_PORT_NUMBER_USING_VIRTUAL_PORT_NUMBER:
*((USHORT *) parameter_1) = (USHORT) parameter_0;
break;
case CLOSE_PROTOCOL_STACK:
lsl_control ((ULONG) DEREGISTER_PROTOCOL_STACK, (ULONG) NETWORK_LAYER_TYPE, stp_class.stack_id);
break;
default:
break;
}
return (PASS);
}
/****************************************************************************/
void set_spanning_tree_port_forwarding_state (char *cptr_port_number_and_port_state_type_string)
{
USHORT port_number;
char port_state_type_string[20];
port_number = get_port_number_and_string (cptr_port_number_and_port_state_type_string,&port_state_type_string[0]);
if (strstr (strlwr (port_state_type_string),"disabled") != NULL)
{
stp_class.port[port_number].state = DISABLED;
}
else if (strstr (strlwr (port_state_type_string),"listening") != NULL)
{
stp_class.port[port_number].state = LISTENING;
}
else if (strstr (strlwr (port_state_type_string),"learning") != NULL)
{
stp_class.port[port_number].state = LEARNING;
}
else if (strstr (strlwr (port_state_type_string),"forwarding") != NULL)
{
stp_class.port[port_number].state = FORWARDING;
}
else if (strstr (strlwr (port_state_type_string),"blocking") != NULL)
{
stp_class.port[port_number].state = BLOCKING;
}
}
/****************************************************************************/
ULONG stp_get_configuration_table_address (void)
{
return ((ULONG) &stp_configuration_table);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -