📄 pivlan.h
字号:
/*
* Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved.
*
* This software is copyrighted by and is the sole property of
* VIA Networking Technologies, Inc. This software may only be used
* in accordance with the corresponding license agreement. Any unauthorized
* use, duplication, transmission, distribution, or disclosure of this
* software is expressly forbidden.
*
* This software is provided by VIA Networking Technologies, Inc. "as is"
* and any express or implied warranties, including, but not limited to, the
* implied warranties of merchantability and fitness for a particular purpose
* are disclaimed. In no event shall VIA Networking Technologies, Inc.
* be liable for any direct, indirect, incidental, special, exemplary, or
* consequential damages.
*
*
* File: pivan.h
*
* Purpose: VLAN UI related definitions
*
* Author: Tevin Chen
*
* Date: Jan 08, 2002
*
*/
#ifndef __PIVLAN_H__
#define __PIVLAN_H__
#include "ttype.h"
#include "switch.h"
#include "picfgmp.h"
/*--------------------- Export Classes -----------------------------*/
// Definition of vlan group
typedef struct tagSVlanGrp {
UINT16 wVid; // VLAN group ID
// Each port could be not member, tagged member or untagged member => 2 bits
BYTE abyMbrMsk[BYTE_NUM_OF_CFGBUF_BIT_MASK*2]; // Member mask
} SVlanGrp;
// Definition of vlan configuration page
typedef struct tagSVlanPageCfg {
UINT8 byVlanMode; // VLAN mode
UINT8 byValidEntryNum; // Valid table entry number
UINT16 awValidGrpIdList[SWITCH_VLAN_GRP_NUM]; // Valid vlan group id array
SVlanGrp SCurGrp; // Currently configuring group
UINT16 wMaxVid;
} SVlanPageCfg;
// Define vlan member config code
// NOTE: The order of UNTAG_MBR & TAG_MBR cannot be modified since the APIs use
// bit0 as if it's tagged mbr and bit1 as if it's untagged mbr
enum {
VLAN_GRP_NOT_MBR,
VLAN_GRP_TAG_MBR,
VLAN_GRP_UNTAG_MBR
};
//
// 802.1Q ingress filter configuration page
//
typedef struct tagSVlanIngrFilterPageCfg {
// Each port could be off, nonmember, untagged or both => 2 bits
BYTE abyCfg[BYTE_NUM_OF_CFGBUF_BIT_MASK*2];
} SVlanIngrFilterPageCfg;
// Define vlan ingress filter config code
enum {
VLNFLT_DISABLE,
VLNFLT_DROP_NOT_MBR,
VLNFLT_DROP_UNTAG_MBR,
VLNFLT_DROP_NOTMBR_UNTAG
};
/*--------------------- Export Definitions -------------------------*/
// Define size of VLAN config
#define EEP_SIZE_VLAN_MODE sizeof(UINT8)
#define EEP_SIZE_VLAN_TBL_ENTRY sizeof(SVlanGrp)
#define EEP_SIZE_VLAN_CFG (EEP_SIZE_VLAN_MODE + EEP_SIZE_VLAN_TBL_ENTRY*SWITCH_VLAN_GRP_NUM + EEP_SIZE_VLAN_INGRESS_FILTER)
// NOTE the *.c function who wants to use the following definition must include "pieeprom.h"
// itself since including it here would cause two *.h files including each other
#define EEP_ADDR_VLAN_GROUP (EEP_ADDR_VLAN_CFG + EEP_SIZE_VLAN_MODE)
#define EEP_ADDR_VLAN_INGRESS_FILTER (EEP_ADDR_VLAN_GROUP + EEP_SIZE_VLAN_TBL_ENTRY*SWITCH_VLAN_GRP_NUM)
#define EEP_SIZE_VLAN_INGRESS_FILTER sizeof(SVlanIngrFilterPageCfg)
// Definition of vid value
#define VLAN_DEFAULT_GROUP_VID 1
#define VLAN_MIN_VALID_VID 1
#define VLAN_MAX_VALID_VID_3077 255
#define VLAN_MAX_VALID_VID_3221 4094
/*--------------------- Export Variables --------------------------*/
/*--------------------- Export Macros ------------------------------*/
/*--------------------- Export Functions --------------------------*/
// to simplify include files
#include "pivlnmod.h"
#include "pivlngrp.h"
#include "pivlnflt.h"
#endif /* __PIVLAN_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -