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

📄 skrlmt.h

📁 适合KS8695X
💻 H
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
 *
 * Name:	skrlmt.h
 * Project:	GEnesis, PCI Gigabit Ethernet Adapter
 * Version:	$Revision: 1.35 $
 * Date:	$Date: 2003/01/31 14:12:41 $
 * Purpose:	Header file for Redundant Link ManagemenT.
 *
 ******************************************************************************/

/******************************************************************************
 *
 *	(C)Copyright 1998-2001 SysKonnect GmbH.
 *
 *	This program is free software; you can redistribute it and/or modify
 *	it under the terms of the GNU General Public License as published by
 *	the Free Software Foundation; either version 2 of the License, or
 *	(at your option) any later version.
 *
 *	The information in this file is provided "AS IS" without warranty.
 *
 ******************************************************************************/

/******************************************************************************
 *
 * History:
 *
 *	$Log: skrlmt.h,v $
 *	Revision 1.35  2003/01/31 14:12:41  mkunz
 *	single port adapter runs now with two identical MAC addresses
 *
 *	Revision 1.34  2002/09/23 15:13:41  rwahl
 *	Editorial changes.
 *
 *	Revision 1.33  2001/07/03 12:16:48  mkunz
 *	New Flag ChgBcPrio (Change priority of last broadcast received)
 *
 *	Revision 1.32  2001/02/14 14:06:31  rassmann
 *	Editorial changes.
 *
 *	Revision 1.31  2001/02/05 14:25:26  rassmann
 *	Prepared RLMT for transparent operation.
 *
 *	Revision 1.30  2001/01/22 13:41:39  rassmann
 *	Supporting two nets on dual-port adapters.
 *
 *	Revision 1.29  2000/11/17 08:58:00  rassmann
 *	Moved CheckSwitch from SK_RLMT_PACKET_RECEIVED to SK_RLMT_TIM event.
 *
 *	Revision 1.28  2000/11/09 12:24:34  rassmann
 *	Editorial changes.
 *
 *	Revision 1.27  1999/11/22 13:59:56  cgoos
 *	Changed license header to GPL.
 *
 *	Revision 1.26  1999/10/04 14:01:19  rassmann
 *	Corrected reaction to reception of BPDU frames (#10441).
 *
 *	Revision 1.25  1999/07/20 12:53:39  rassmann
 *	Fixed documentation errors for lookahead macros.
 *
 *	Revision 1.24  1999/05/28 11:15:56  rassmann
 *	Changed behaviour to reflect Design Spec v1.2.
 *	Controlling Link LED(s).
 *	Introduced RLMT Packet Version field in RLMT Packet.
 *	Newstyle lookahead macros (checking meta-information before looking at
 *	  the packet).
 *
 *	Revision 1.23  1999/01/28 12:50:42  rassmann
 *	Not using broadcast time stamps in CheckLinkState mode.
 *
 *	Revision 1.22  1999/01/27 14:13:04  rassmann
 *	Monitoring broadcast traffic.
 *	Switching more reliably and not too early if switch is
 *	 configured for spanning tree.
 *
 *	Revision 1.21  1998/12/08 13:11:25  rassmann
 *	Stopping SegTimer at RlmtStop.
 *
 *	Revision 1.20  1998/11/24 12:37:33  rassmann
 *	Implemented segmentation check.
 *
 *	Revision 1.19  1998/11/17 13:43:06  rassmann
 *	Handling (logical) tx failure.
 *	Sending packet on logical address after PORT_SWITCH.
 *
 *	Revision 1.18  1998/11/13 16:56:56  rassmann
 *	Added macro version of SkRlmtLookaheadPacket.
 *
 *	Revision 1.17  1998/11/06 18:06:05  rassmann
 *	Corrected timing when RLMT checks fail.
 *	Clearing tx counter earlier in periodical checks.
 *
 *	Revision 1.16  1998/11/03 13:53:50  rassmann
 *	RLMT should switch now (at least in mode 3).
 *
 *	Revision 1.15  1998/10/22 11:39:52  rassmann
 *	Corrected signed/unsigned mismatches.
 *	Corrected receive list handling and address recognition.
 *
 *	Revision 1.14  1998/10/15 15:16:36  rassmann
 *	Finished Spanning Tree checking.
 *	Checked with lint.
 *
 *	Revision 1.13  1998/09/24 19:16:08  rassmann
 *	Code cleanup.
 *	Introduced Timer for PORT_DOWN due to no RX.
 *
 *	Revision 1.12  1998/09/16 11:09:52  rassmann
 *	Syntax corrections.
 *
 *	Revision 1.11  1998/09/15 11:28:50  rassmann
 *	Syntax corrections.
 *
 *	Revision 1.10  1998/09/14 17:07:38  rassmann
 *	Added code for port checking via LAN.
 *	Changed Mbuf definition.
 *
 *	Revision 1.9  1998/09/07 11:14:15  rassmann
 *	Syntax corrections.
 *
 *	Revision 1.8  1998/09/07 09:06:08  rassmann
 *	Syntax corrections.
 *
 *	Revision 1.7  1998/09/04 19:41:34  rassmann
 *	Syntax corrections.
 *	Started entering code for checking local links.
 *
 *	Revision 1.6  1998/09/04 12:14:28  rassmann
 *	Interface cleanup.
 *
 *	Revision 1.5  1998/09/02 16:55:29  rassmann
 *	Updated to reflect new DRV/HWAC/RLMT interface.
 *
 *	Revision 1.4  1998/09/02 07:26:02  afischer
 *	typedef for SK_RLMT_PORT
 *
 *	Revision 1.3  1998/08/27 14:29:03  rassmann
 *	Code cleanup.
 *
 *	Revision 1.2  1998/08/27 14:26:25  rassmann
 *	Updated interface.
 *
 *	Revision 1.1  1998/08/21 08:29:10  rassmann
 *	First public version.
 *
 ******************************************************************************/

/******************************************************************************
 *
 * Description:
 *
 * This is the header file for Redundant Link ManagemenT.
 *
 * Include File Hierarchy:
 *
 *	"skdrv1st.h"
 *	...
 *	"sktypes.h"
 *	"skqueue.h"
 *	"skaddr.h"
 *	"skrlmt.h"
 *	...
 *	"skdrv2nd.h"
 *
 ******************************************************************************/

#ifndef __INC_SKRLMT_H
#define __INC_SKRLMT_H

#ifdef __cplusplus
#error C++ is not yet supported.
extern "C" {
#endif	/* cplusplus */

/* defines ********************************************************************/

#define	SK_RLMT_NET_DOWN_TEMP	1	/* NET_DOWN due to last port down. */
#define	SK_RLMT_NET_DOWN_FINAL	2	/* NET_DOWN due to RLMT_STOP. */

/* ----- Default queue sizes - must be multiples of 8 KB ----- */

/* Less than 8 KB free in RX queue => pause frames. */
#define SK_RLMT_STANDBY_QRXSIZE	128	/* Size of rx standby queue in KB. */
#define SK_RLMT_STANDBY_QXASIZE	32	/* Size of async standby queue in KB. */
#define SK_RLMT_STANDBY_QXSSIZE	0	/* Size of sync standby queue in KB. */

#define SK_RLMT_MAX_TX_BUF_SIZE	60	/* Maximum RLMT transmit size. */

/* ----- PORT states ----- */

#define SK_RLMT_PS_INIT			0	/* Port state: Init. */
#define SK_RLMT_PS_LINK_DOWN	1	/* Port state: Link down. */
#define SK_RLMT_PS_DOWN			2	/* Port state: Port down. */
#define SK_RLMT_PS_GOING_UP		3	/* Port state: Going up. */
#define SK_RLMT_PS_UP			4	/* Port state: Up. */

/* ----- RLMT states ----- */

#define SK_RLMT_RS_INIT			0	/* RLMT state: Init. */
#define SK_RLMT_RS_NET_DOWN		1	/* RLMT state: Net down. */
#define SK_RLMT_RS_NET_UP		2	/* RLMT state: Net up. */

/* ----- PORT events ----- */

#define SK_RLMT_LINK_UP			1001	/* Link came up. */
#define SK_RLMT_LINK_DOWN		1002	/* Link went down. */
#define SK_RLMT_PORT_ADDR		1003	/* Port address changed. */

/* ----- RLMT events ----- */

#define SK_RLMT_START			2001	/* Start RLMT. */
#define SK_RLMT_STOP			2002	/* Stop RLMT. */
#define SK_RLMT_PACKET_RECEIVED	2003	/* Packet was received for RLMT. */
#define SK_RLMT_STATS_CLEAR		2004	/* Clear statistics. */
#define SK_RLMT_STATS_UPDATE	2005	/* Update statistics. */
#define SK_RLMT_PREFPORT_CHANGE	2006	/* Change preferred port. */
#define SK_RLMT_MODE_CHANGE		2007	/* New RlmtMode. */
#define SK_RLMT_SET_NETS		2008	/* Number of Nets (1 or 2). */

/* ----- RLMT mode bits ----- */

/*
 * CAUTION:	These defines are private to RLMT.
 *			Please use the RLMT mode defines below.
 */

#define SK_RLMT_CHECK_LINK		  1		/* Check Link. */
#define SK_RLMT_CHECK_LOC_LINK	  2		/* Check other link on same adapter. */
#define SK_RLMT_CHECK_SEG		  4		/* Check segmentation. */

#ifndef RLMT_CHECK_REMOTE
#define SK_RLMT_CHECK_OTHERS	SK_RLMT_CHECK_LOC_LINK
#else	/* RLMT_CHECK_REMOTE */
#define SK_RLMT_CHECK_REM_LINK	  8		/* Check link(s) on other adapter(s). */
#define SK_RLMT_MAX_REMOTE_PORTS_CHECKED	3
#define SK_RLMT_CHECK_OTHERS	\
		(SK_RLMT_CHECK_LOC_LINK | SK_RLMT_CHECK_REM_LINK)
#endif	/* RLMT_CHECK_REMOTE */

#ifndef SK_RLMT_ENABLE_TRANSPARENT
#define SK_RLMT_TRANSPARENT		  0		/* RLMT transparent - inactive. */
#else	/* SK_RLMT_ENABLE_TRANSPARENT */
#define SK_RLMT_TRANSPARENT		128		/* RLMT transparent. */
#endif	/* SK_RLMT_ENABLE_TRANSPARENT */

/* ----- RLMT modes ----- */

/* Check Link State. */
#define SK_RLMT_MODE_CLS	(SK_RLMT_CHECK_LINK)

/* Check Local Ports: check other links on the same adapter. */
#define SK_RLMT_MODE_CLP	(SK_RLMT_CHECK_LINK | SK_RLMT_CHECK_LOC_LINK)

/* Check Local Ports and Segmentation Status. */
#define SK_RLMT_MODE_CLPSS	\
		(SK_RLMT_CHECK_LINK | SK_RLMT_CHECK_LOC_LINK | SK_RLMT_CHECK_SEG)

#ifdef RLMT_CHECK_REMOTE
/* Check Local and Remote Ports: check links (local or remote). */
	Name of define TBD!
#define SK_RLMT_MODE_CRP	\
		(SK_RLMT_CHECK_LINK | SK_RLMT_CHECK_LOC_LINK | SK_RLMT_CHECK_REM_LINK)

/* Check Local and Remote Ports and Segmentation Status. */
	Name of define TBD!
#define SK_RLMT_MODE_CRPSS	\
		(SK_RLMT_CHECK_LINK | SK_RLMT_CHECK_LOC_LINK | \
		SK_RLMT_CHECK_REM_LINK | SK_RLMT_CHECK_SEG)
#endif	/* RLMT_CHECK_REMOTE */

/* ----- RLMT lookahead result bits ----- */

#define SK_RLMT_RX_RLMT			1	/* Give packet to RLMT. */
#define SK_RLMT_RX_PROTOCOL		2	/* Give packet to protocol. */

/* Macros */

#if 0
SK_AC		*pAC		/* adapter context */
SK_U32		PortNum		/* receiving port */
unsigned	PktLen		/* received packet's length */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -