⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 macbrcfg.c

📁 以太网交换机协议平台stp协议的设计与实现源代码。
💻 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 + -