亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? skrlmt.h

?? 適合KS8695X
?? H
?? 第 1 頁 / 共 2 頁
字號:
SK_BOOL		IsBc		/* Flag: packet is broadcast */
unsigned	*pOffset	/* offs. of bytes to present to SK_RLMT_LOOKAHEAD */
unsigned	*pNumBytes	/* #Bytes to present to SK_RLMT_LOOKAHEAD */
#endif	/* 0 */

#define SK_RLMT_PRE_LOOKAHEAD(pAC,PortNum,PktLen,IsBc,pOffset,pNumBytes) { \
	SK_AC	*_pAC; \
	SK_U32	_PortNum; \
	_pAC = (pAC); \
	_PortNum = (SK_U32)(PortNum); \
	/* _pAC->Rlmt.Port[_PortNum].PacketsRx++; */ \
	_pAC->Rlmt.Port[_PortNum].PacketsPerTimeSlot++; \
    if (_pAC->Rlmt.RlmtOff) { \
		*(pNumBytes) = 0; \
    } \
    else {\
	if ((_pAC->Rlmt.Port[_PortNum].Net->RlmtMode & SK_RLMT_TRANSPARENT) != 0) { \
		*(pNumBytes) = 0; \
	} \
	else if (IsBc) { \
		if (_pAC->Rlmt.Port[_PortNum].Net->RlmtMode != SK_RLMT_MODE_CLS) { \
			*(pNumBytes) = 6; \
			*(pOffset) = 6; \
		} \
		else { \
			*(pNumBytes) = 0; \
		} \
	} \
	else { \
		if ((PktLen) > SK_RLMT_MAX_TX_BUF_SIZE) { \
			/* _pAC->Rlmt.Port[_PortNum].DataPacketsPerTimeSlot++; */ \
			*(pNumBytes) = 0; \
		} \
		else { \
			*(pNumBytes) = 6; \
			*(pOffset) = 0; \
		} \
	} \
    } \
}

#if 0
SK_AC		*pAC		/* adapter context */
SK_U32		PortNum		/* receiving port */
SK_U8		*pLaPacket,	/* received packet's data (points to pOffset) */
SK_BOOL		IsBc		/* Flag: packet is broadcast */
SK_BOOL		IsMc		/* Flag: packet is multicast */
unsigned	*pForRlmt	/* Result: bits SK_RLMT_RX_RLMT, SK_RLMT_RX_PROTOCOL */
SK_RLMT_LOOKAHEAD() expects *pNumBytes from
packet offset *pOffset (s.a.) at *pLaPacket.

If you use SK_RLMT_LOOKAHEAD in a path where you already know if the packet is
BC, MC, or UC, you should use constants for IsBc and IsMc, so that your compiler
can trash unneeded parts of the if construction.
#endif	/* 0 */

#define SK_RLMT_LOOKAHEAD(pAC,PortNum,pLaPacket,IsBc,IsMc,pForRlmt) { \
	SK_AC	*_pAC; \
	SK_U32	_PortNum; \
	SK_U8	*_pLaPacket; \
	_pAC = (pAC); \
	_PortNum = (SK_U32)(PortNum); \
	_pLaPacket = (SK_U8 *)(pLaPacket); \
	if (IsBc) {\
		if (!SK_ADDR_EQUAL(_pLaPacket, _pAC->Addr.Net[_pAC->Rlmt.Port[ \
			_PortNum].Net->NetNumber].CurrentMacAddress.a)) { \
			_pAC->Rlmt.Port[_PortNum].BcTimeStamp = SkOsGetTime(_pAC); \
			_pAC->Rlmt.CheckSwitch = SK_TRUE; \
		} \
		/* _pAC->Rlmt.Port[_PortNum].DataPacketsPerTimeSlot++; */ \
		*(pForRlmt) = SK_RLMT_RX_PROTOCOL; \
	} \
	else if (IsMc) { \
		if (SK_ADDR_EQUAL(_pLaPacket, BridgeMcAddr.a)) { \
			_pAC->Rlmt.Port[_PortNum].BpduPacketsPerTimeSlot++; \
			if (_pAC->Rlmt.Port[_PortNum].Net->RlmtMode & SK_RLMT_CHECK_SEG) { \
				*(pForRlmt) = SK_RLMT_RX_RLMT | SK_RLMT_RX_PROTOCOL; \
			} \
			else { \
				*(pForRlmt) = SK_RLMT_RX_PROTOCOL; \
			} \
		} \
		else if (SK_ADDR_EQUAL(_pLaPacket, SkRlmtMcAddr.a)) { \
			*(pForRlmt) = SK_RLMT_RX_RLMT; \
		} \
		else { \
			/* _pAC->Rlmt.Port[_PortNum].DataPacketsPerTimeSlot++; */ \
			*(pForRlmt) = SK_RLMT_RX_PROTOCOL; \
		} \
	} \
	else { \
		if (SK_ADDR_EQUAL( \
			_pLaPacket, \
			_pAC->Addr.Port[_PortNum].CurrentMacAddress.a)) { \
			*(pForRlmt) = SK_RLMT_RX_RLMT; \
		} \
		else { \
			/* _pAC->Rlmt.Port[_PortNum].DataPacketsPerTimeSlot++; */ \
			*(pForRlmt) = SK_RLMT_RX_PROTOCOL; \
		} \
	} \
}

#ifdef SK_RLMT_FAST_LOOKAHEAD
Error: SK_RLMT_FAST_LOOKAHEAD no longer used. Use new macros for lookahead.
#endif	/* SK_RLMT_FAST_LOOKAHEAD */
#ifdef SK_RLMT_SLOW_LOOKAHEAD
Error: SK_RLMT_SLOW_LOOKAHEAD no longer used. Use new macros for lookahead.
#endif	/* SK_RLMT_SLOW_LOOKAHEAD */

/* typedefs *******************************************************************/

#ifdef SK_RLMT_MBUF_PRIVATE
typedef struct s_RlmtMbuf {
	some content
} SK_RLMT_MBUF;
#endif	/* SK_RLMT_MBUF_PRIVATE */


#ifdef SK_LA_INFO
typedef struct s_Rlmt_PacketInfo {
	unsigned	PacketLength;			/* Length of packet. */
	unsigned	PacketType;				/* Directed/Multicast/Broadcast. */
} SK_RLMT_PINFO;
#endif	/* SK_LA_INFO */


typedef struct s_RootId {
	SK_U8		Id[8];					/* Root Bridge Id. */
} SK_RLMT_ROOT_ID;


typedef struct s_port {
	SK_MAC_ADDR	CheckAddr;
	SK_BOOL		SuspectTx;
} SK_PORT_CHECK;


typedef struct s_RlmtNet SK_RLMT_NET;


typedef struct s_RlmtPort {

/* ----- Public part (read-only) ----- */

	SK_U8			PortState;				/* Current state of this port. */

	/* For PNMI */
	SK_BOOL			LinkDown;
	SK_BOOL			PortDown;
	SK_U8			Align01;

	SK_U32			PortNumber;				/* Number of port on adapter. */
	SK_RLMT_NET *	Net;					/* Net port belongs to. */

	SK_U64			TxHelloCts;
	SK_U64			RxHelloCts;
	SK_U64			TxSpHelloReqCts;
	SK_U64			RxSpHelloCts;

/* ----- Private part ----- */

/*	SK_U64			PacketsRx; */				/* Total packets received. */
	SK_U32			PacketsPerTimeSlot;		/* Packets rxed between TOs. */
/*	SK_U32			DataPacketsPerTimeSlot; */	/* Data packets ... */
	SK_U32			BpduPacketsPerTimeSlot;	/* BPDU packets rxed in TS. */
	SK_U64			BcTimeStamp;			/* Time of last BC receive. */
	SK_U64			GuTimeStamp;			/* Time of entering GOING_UP. */

	SK_TIMER		UpTimer;				/* Timer struct Link/Port up. */
	SK_TIMER		DownRxTimer;			/* Timer struct down rx. */
	SK_TIMER		DownTxTimer;			/* Timer struct down tx. */

	SK_U32			CheckingState;			/* Checking State. */

	SK_ADDR_PORT *	AddrPort;

	SK_U8			Random[4];				/* Random value. */
	unsigned		PortsChecked;			/* #ports checked. */
	unsigned		PortsSuspect;			/* #ports checked that are s. */
	SK_PORT_CHECK	PortCheck[1];
/*	SK_PORT_CHECK	PortCheck[SK_MAX_MACS - 1]; */

	SK_BOOL			PortStarted;			/* Port is started. */
	SK_BOOL			PortNoRx;				/* NoRx for >= 1 time slot. */
	SK_BOOL			RootIdSet;
	SK_RLMT_ROOT_ID	Root;					/* Root Bridge Id. */
} SK_RLMT_PORT;


struct s_RlmtNet {

/* ----- Public part (read-only) ----- */

	SK_U32			NetNumber;			/* Number of net. */

	SK_RLMT_PORT *	Port[SK_MAX_MACS];	/* Ports that belong to this net. */
	SK_U32			NumPorts;			/* Number of ports. */
	SK_U32			PrefPort;			/* Preferred port. */

	/* For PNMI */

	SK_U32			ChgBcPrio;			/* Change Priority of last broadcast received */
	SK_U32			RlmtMode;			/* Check ... */
	SK_U32			ActivePort;			/* Active port. */
	SK_U32			Preference;		/* 0xFFFFFFFF: Automatic. */

	SK_U8			RlmtState;			/* Current RLMT state. */

/* ----- Private part ----- */
	SK_BOOL			RootIdSet;
	SK_U16			Align01;

	int				LinksUp;			/* #Links up. */
	int				PortsUp;			/* #Ports up. */
	SK_U32			TimeoutValue;		/* RLMT timeout value. */

	SK_U32			CheckingState;		/* Checking State. */
	SK_RLMT_ROOT_ID	Root;				/* Root Bridge Id. */

	SK_TIMER		LocTimer;			/* Timer struct. */
	SK_TIMER		SegTimer;			/* Timer struct. */
};


typedef struct s_Rlmt {

/* ----- Public part (read-only) ----- */

	SK_U32			NumNets;			/* Number of nets. */
	SK_U32			NetsStarted;		/* Number of nets started. */
	SK_RLMT_NET		Net[SK_MAX_NETS];	/* Array of available nets. */
	SK_RLMT_PORT	Port[SK_MAX_MACS];	/* Array of available ports. */

/* ----- Private part ----- */
	SK_BOOL			CheckSwitch;
	SK_BOOL			RlmtOff;            /* set to zero if the Mac addresses
					   are equal or the second one
					   is zero */
	SK_U16			Align01;

} SK_RLMT;


extern	SK_MAC_ADDR	BridgeMcAddr;
extern	SK_MAC_ADDR	SkRlmtMcAddr;

/* function prototypes ********************************************************/


#ifndef SK_KR_PROTO

/* Functions provided by SkRlmt */

/* ANSI/C++ compliant function prototypes */

extern	void	SkRlmtInit(
	SK_AC	*pAC,
	SK_IOC	IoC,
	int		Level);

extern	int	SkRlmtEvent(
	SK_AC		*pAC,
	SK_IOC		IoC,
	SK_U32		Event,
	SK_EVPARA	Para);

#else	/* defined(SK_KR_PROTO) */

/* Non-ANSI/C++ compliant function prototypes */

#error KR-style function prototypes are not yet provided.

#endif	/* defined(SK_KR_PROTO)) */


#ifdef __cplusplus
}
#endif	/* __cplusplus */

#endif	/* __INC_SKRLMT_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
白白色 亚洲乱淫| 亚洲人被黑人高潮完整版| 国产大陆精品国产| 亚洲欧洲精品一区二区三区| 欧美体内she精视频| 一区二区三区精品视频在线| 欧美肥胖老妇做爰| 国产91精品在线观看| 亚洲高清免费视频| 337p粉嫩大胆色噜噜噜噜亚洲| 极品少妇xxxx偷拍精品少妇| 亚洲色图色小说| 3d动漫精品啪啪一区二区竹菊| 国内精品久久久久影院一蜜桃| 亚洲日本在线看| 精品处破学生在线二十三| 粉嫩aⅴ一区二区三区四区五区 | 日韩电影一区二区三区| 久久久精品欧美丰满| 欧美午夜理伦三级在线观看| 亚洲综合偷拍欧美一区色| 精品少妇一区二区三区在线视频| 99久久综合精品| 极品美女销魂一区二区三区| 亚洲乱码国产乱码精品精小说| 欧美日韩大陆一区二区| 国产成人av电影| 日韩在线一区二区| 亚洲女人****多毛耸耸8| 精品国产欧美一区二区| 91视频精品在这里| 国产乱码精品一区二区三区忘忧草| 亚洲尤物视频在线| 国产精品久久久久久久第一福利 | 日本一区二区三区高清不卡| 色88888久久久久久影院野外| 久久99国产精品久久99| 亚洲影视资源网| 亚洲人成精品久久久久久| 色综合久久久久综合体| 成人国产免费视频| 美女一区二区视频| 亚洲成av人片在线| 欧美国产成人精品| 精品国产伦一区二区三区观看方式| 欧美在线观看一区二区| 成人黄色免费短视频| 免费观看91视频大全| 亚洲日本乱码在线观看| 26uuu另类欧美亚洲曰本| 欧美一级视频精品观看| 欧美性猛片xxxx免费看久爱| 波多野结衣精品在线| 国产成人精品免费视频网站| 久久国内精品视频| 奇米色一区二区三区四区| 亚洲小说春色综合另类电影| 国产精品久久久一本精品| 国产日韩精品视频一区| 久久网站最新地址| 久久久99免费| 欧美理论在线播放| 欧美乱熟臀69xxxxxx| av中文字幕一区| 国产伦精一区二区三区| 日韩高清一区二区| 日本三级亚洲精品| 美国三级日本三级久久99| 麻豆精品久久久| 极品销魂美女一区二区三区| 男女视频一区二区| 精品制服美女丁香| 国产精品一品视频| a在线欧美一区| 91小视频免费看| 91毛片在线观看| 欧美日韩国产在线观看| 91麻豆精品国产91久久久资源速度| 91精品国产色综合久久不卡蜜臀| 日韩一区二区三区高清免费看看| 亚洲精品一区二区精华| 久久久99精品久久| 久久久久久一二三区| 国产精品伦一区| 国产精品久久久久婷婷| 一区二区三区成人| 亚洲主播在线播放| 精品一区二区在线免费观看| 国产精品一区二区男女羞羞无遮挡| 成人丝袜视频网| 91麻豆自制传媒国产之光| 精品视频色一区| 精品少妇一区二区三区| 国产日韩欧美在线一区| 亚洲一区二区五区| 亚洲国产精品人人做人人爽| 捆绑调教一区二区三区| 国产精品一品二品| 欧美午夜视频网站| 久久网站热最新地址| 91精品欧美一区二区三区综合在 | 欧美理论电影在线| 久久久噜噜噜久噜久久综合| 亚洲精品国产精华液| 久久精品国产精品亚洲红杏| 成人丝袜视频网| 成人av资源在线观看| 欧美福利视频一区| 国产91丝袜在线播放| 91免费观看国产| 日韩精品一区二区三区在线播放| 中国色在线观看另类| 麻豆精品精品国产自在97香蕉| 欧美在线免费观看亚洲| 国产精品久久久久精k8| 国产在线不卡视频| 日韩无一区二区| 亚洲电影一区二区| 色婷婷av一区二区三区大白胸 | 成人午夜电影久久影院| 精品国精品国产尤物美女| 日韩电影在线看| 欧美日韩国产综合久久| 亚洲一区av在线| 一本久久综合亚洲鲁鲁五月天| 中文字幕av不卡| 国产在线不卡一区| 久久亚区不卡日本| 极品少妇一区二区三区精品视频| 日韩一二三区视频| 五月天久久比比资源色| 欧美日韩一区不卡| 亚洲成人福利片| 欧美伊人久久大香线蕉综合69| √…a在线天堂一区| 成人av在线网| 国产精品久久久一区麻豆最新章节| 国产精品正在播放| 国产亚洲欧美日韩日本| 国产精品系列在线观看| 国产亚洲女人久久久久毛片| 国产成人在线视频播放| 欧美激情一区二区三区在线| 成人综合在线网站| 日韩美女视频19| 日本道色综合久久| 亚洲高清三级视频| 欧美一区2区视频在线观看| 美腿丝袜亚洲一区| 久久精品这里都是精品| 成av人片一区二区| 亚洲精品高清在线观看| 欧美日韩一区二区在线观看| 偷窥少妇高潮呻吟av久久免费| 91精品国产黑色紧身裤美女| 久久av资源网| 国产欧美日韩不卡免费| 91在线国产观看| 亚洲电影中文字幕在线观看| 日韩一级免费一区| 国产伦精品一区二区三区视频青涩 | 国产精品一二三四区| 中文字幕欧美激情| 日本高清不卡视频| 免费久久精品视频| 亚洲国产精品成人综合色在线婷婷| 99热99精品| 日韩专区欧美专区| 国产日韩欧美高清| 欧美综合一区二区三区| 日本不卡的三区四区五区| 日韩你懂的在线播放| 波多野结衣中文字幕一区二区三区| 亚洲精品伦理在线| 日韩精品一区二区三区视频在线观看 | 色婷婷一区二区| 热久久国产精品| 日本一区二区免费在线观看视频| av在线不卡免费看| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美激情一区二区三区全黄| 欧美伊人精品成人久久综合97| 久久超碰97人人做人人爱| 久久久精品免费网站| 欧美伊人精品成人久久综合97| 精品一区二区免费看| 日韩美女视频一区| 欧美www视频| 91福利在线看| 国产伦精品一区二区三区视频青涩 | 午夜免费欧美电影| 国产欧美一区二区在线观看| 欧美久久免费观看| 成人免费黄色大片| 视频一区二区不卡| 成人欧美一区二区三区| 精品国产污网站| 欧美性受极品xxxx喷水| 国内不卡的二区三区中文字幕| 亚洲激情男女视频|