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

📄 pivlan.h

📁 VIA VT6524 8口网管交换机源码
💻 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 + -