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

📄 swfct.h

📁 Switch,Ic,driver,英飛凌6996m驅動程式,包括bandwidth-control以及basic-control功能
💻 H
📖 第 1 页 / 共 2 页
字号:
#define SWI_INTRUDE_VIOLATE_BIT     0x0e1e

#define SWI_PHYREG_OFFSET           0x20

#define SWI_COUNTER_OFFSET          0x12
#define SWI_COUNTER_HIGH_REG        0x01

#define SWI_SYSCTRL1_TRUNK_ENABLE   0x80
#define SWI_SYSCTRL1_TRUNK_SHIFT    7

struct PORT_ACCESS_DEF {
    word    regAddr;
    int     shift;
};

struct REGBIT_OFFSET_DEF {
    word    regAddr;
    int     bitVal;
    int     offset;
};

/* mark - 06/24/05,bolo
struct PORT_IOCTL_ACCESS {
    word     regAddr;
    dword    regVal;
};
*/

#define SWI_PORT_NWAY_ABILITY       1
#define SWI_PORT_SPEED_ABILITY      2
#define SWI_PORT_DUPLEX_ABILITY     3

#define SWI_PORT_LINK_STATUS        0x01
#define SWI_PORT_SPEED_STATUS       0x02
#define SWI_PORT_SPEED_OFFSET       1
#define SWI_PORT_DUPLEX_STATUS      0x04
#define SWI_PORT_DUPLEX_OFFSET      2
#define SWI_PORT_FLOWCTRL_STATUS    0x08
#define SWI_PORT_FLOWCTRL_OFFSET    3

#define SWI_VLFILTER_SHIFT          2
#define SWI_VLFILTER_FID_OFFSET     12
#define SWI_TAGGED_MEMBER_OFFSET    6
#define SWI_VLFILTER_VAILD_OFFSET   15
#define SWI_VLFILTER_PRI_OFFSET     12

// The bits definition for the port priority, the port VID, VLAN priority and TOS priority etc
#define SWI_PORT_VID0B3_BIT         0x3c00  // add - 08/12/05 for the port VID
#define SWI_PORT_VID0B3_MASK        0x0f    // add - 08/12/05 for the port VID
#define SWI_PORT_VID4B11_BIT        0xff    // add - 08/12/05 for the port VID
#define SWI_PORT4_VID4B11_BIT       0xff00  // add - 08/12/05 for the port VID
#define SWI_PORT_VID4B11_MASK       0xff0   // add - 08/12/05 for the port VID
#define SWI_PORT_PRI_BIT            0x0380
#define SWI_IPOVLAN_PRI_BIT         0x0040
#define SWI_VLAN_PRIEN_BIT          0x7e00
#define SWI_SERVICE_PRIEN_BIT       0x7e00
#define SWI_TOS_USING_3BITS         0x0002
#define SWI_PRIQ_OPTION_VALUE       0x0003
#define SWI_VID_CHECK_BIT           0x0fc0
#define SWI_DFTVLAN_MEMBER_BIT      0x0fc0
#define SWI_DEFAULT_FID_BIT         0x0078
#define SWI_BACK_VLAN_BIT           0x0fc0
#define SWI_FORCE_NOTAG_BIT         0x7e00
#define SWI_INGRESS_FILTER_BIT      0x7e00
#define SWI_ADMIT_VLANTAG_BIT       0x003f
#define SWI_OUTPUT_TAGPASS_BIT      0x3f00
#define SWI_VLAN_SECURITY_BIT       0x7e00
#define SWI_NEW_STORM_ENABLE        0x0040
#define SWI_STORMDROP_THRES_BIT     0x1fff
#define SWI_STORM_DROP_ENABLE_BIT   0x6000
#define SWI_MULPKT_STORM_BIT        0x0020
#define SWI_NEW_BWCTRL_BIT          0x1000
#define SWI_BWT_TYPEL0_4BIT         0x000f
#define SWI_BWT_TYPEL1_4BIT         0x00f0
#define SWI_BWT_TYPEH0_4BIT         0x0f00
#define SWI_BWT_TYPEH1_4BIT         0xf000
#define SWI_BWT_TYPEL0_3BIT         0x0007
#define SWI_BWT_TYPEL1_3BIT         0x0038
#define SWI_BWT_TYPEH0_3BIT         0x01c0
#define SWI_BWT_TYPEH1_3BIT         0x0e00
#define SWI_BWT_TYPEH2_3BIT         0x7000
#define SWI_BWT_TYPEH3_3BIT         0x0700

// The offset definition for the port priority, the port VID, VLAN priority and TOS priority etc
#define SWI_PRIQ0_MAP_OFFSET        0
#define SWI_PRIQ1_MAP_OFFSET        2
#define SWI_PRIQ2_MAP_OFFSET        4
#define SWI_PRIQ3_MAP_OFFSET        6
#define SWI_PRIQ4_MAP_OFFSET        8
#define SWI_PRIQ5_MAP_OFFSET        10
#define SWI_PRIQ6_MAP_OFFSET        12
#define SWI_PRIQ7_MAP_OFFSET        14
#define SWI_PORT_VID0B3_OFFSET      10  // add - 08/12/05 for the port VID
#define SWI_PORT_VID0B3_SHIFT       4   // add - 08/12/05 for the port VID
#define SWI_PORT4_VID4B11_OFFSET    8   // add - 08/12/05 for the port VID
#define SWI_PORT_PRI_OFFSET         8
#define SWI_PORT_PRIEN_OFFSET       7
#define SWI_IPOVLAN_PRI_OFFSET      6
#define SWI_VLAN_PRIEN_OFFSET       9
#define SWI_SERVICE_PRIEN_OFFSET    9
#define SWI_VID_CHECK_OFFSET        6
#define SWI_DFTVLAN_MEMBER_OFFSET   6
#define SWI_DEFAULT_FID_OFFSET      3
#define SWI_BACK_VLAN_OFFSET        6
#define SWI_FORCE_NOTAG_OFFSET      9
#define SWI_INGRESS_FILTER_OFFSET   9
#define SWI_ADMIT_VLANTAG_OFFSET    0
#define SWI_OUTPUT_TAGPASS_OFFSET   8
#define SWI_VLAN_SECURITY_OFFSET    9
#define SWI_STORM_ENABLE_OFFSET     13
#define SWI_DROP_ENABLE_OFFSET      14
#define SWI_MULPKT_STORM_OFFSET     5
#define SWI_TX0BWC_ENABLE_OFFSET    1
#define SWI_TX1BWC_ENABLE_OFFSET    3
#define SWI_TX2BWC_ENABLE_OFFSET    5
#define SWI_TX3BWC_ENABLE_OFFSET    9
#define SWI_TX4BWC_ENABLE_OFFSET    10
#define SWI_TX5BWC_ENABLE_OFFSET    11
#define SWI_RX0BWC_ENABLE_OFFSET    0
#define SWI_RX1BWC_ENABLE_OFFSET    2
#define SWI_RX2BWC_ENABLE_OFFSET    4
#define SWI_RX3BWC_ENABLE_OFFSET    6
#define SWI_RX4BWC_ENABLE_OFFSET    7
#define SWI_RX5BWC_ENABLE_OFFSET    8
#define SWI_BWT_TYPEL0_OFFSET0      0
#define SWI_BWT_TYPEL1_OFFSET0      4
#define SWI_BWT_TYPEH0_OFFSET0      8
#define SWI_BWT_TYPEH1_OFFSET0      12
#define SWI_BWT_TYPEL0_OFFSET1      0
#define SWI_BWT_TYPEL1_OFFSET1      3
#define SWI_BWT_TYPEH0_OFFSET1      6
#define SWI_BWT_TYPEH1_OFFSET1      9
#define SWI_BWT_TYPEH2_OFFSET1      12

// The MAC address type for the learning table
#define SWI_DYNAMIC_MACADDR         0
#define SWI_STATIC_MACADDR          1
#define SWI_LRNTBL_INFOTYPE_BIT     0x1000
#define SWI_LRNTBL_INFOTYPE_OFFSET  12
#define SWI_LRNTBL_PORTMAP_BIT      0x03f0
#define SWI_LRNTBL_PORTMAP_OFFSET   4
#define SWI_LRNTBL_FID_BIT          0x000f
#define SWI_LRNTBL_FID_OFFSET       0
#define SWI_LRNTBL_INFOCTRL_BIT     0x01ff
#define SWI_LRNTBL_INFOCTRL_OFFSET  0
#define SWI_LRNTBL_ACCTRL_OFFSET    0
#define SWI_LRNTBL_COMMAND_OFFSET   4
#define SWI_LRNTBL_RESULT_BIT       0x7000
#define SWI_LRNTBL_RESULT_OFFSET    12

// The access control code for the learning table
#define SWI_ACCESS_CREATE_NEWMAC    0x7
#define SWI_ACCESS_OVERWRITE_MAC    0xf
#define SWI_ACCESS_ERASE_MAC        0xf
#define SWI_ACCESS_SEARCH_EMPTYMAC  0x0
#define SWI_ACCESS_SEARCH_OUTPORT   0x9
#define SWI_ACCESS_SEARCH_FWDGRP    0xa
#define SWI_ACCESS_SEARCH_MACADDR   0xc
#define SWI_ACCESS_SEARCH_FWGPMAC   0xe
#define SWI_ACCESS_SEARCH_MACOUTPT  0xd
#define SWI_ACCESS_SEARCH_FWGOUTPT  0xb
#define SWI_ACCESS_SEARCH_FWMACOUT  0xf

// The command code for the learning table
#define SWI_COMMAND_WRITE_MAC       0x0
#define SWI_COMMAND_ERASE_MAC       0x1
#define SWI_COMMAND_SEARCH_MAC      0x2
#define SWI_COMMAND_INITIAL_MAC     0x3
#define SWI_COMMAND_WRITE_IGMPTBL   0x4
#define SWI_COMMAND_READ_IGMPTBL    0x5
#define SWI_LRNTABL_ACCESS_BUSY     0x8000

// The command code for the learning table
#define SWI_COMMAND_ENTRY_FOUND     0
#define SWI_ACCESS_ALLENTRY_USED    1
#define SWI_COMMAND_ENTRY_MISSED    5
#define SWI_COMMAND_ENTRY_BUSY      7

// The status bits for the IGMP table
#define SWI_IGMPTBL_ACCESS_MAXNUM   10
#define SWI_IGMPTBL_ENTRY_BIT       0x01f
#define SWI_IGMPTBL_OCCUPY_BIT      0x0300
#define SWI_IGMPTBL_OCCUPY_OFFSET   8
#define SWI_IGMPTBL_PORTMAP_BIT     0x1f80
#define SWI_IGMPTBL_PORTMAP_OFFSET  7

// The register bits for the hardware IGMP snooping
#define SWI_IGMP_ROUTER_ENABLE_BIT  0x01
#define SWI_IGMP_SNOOP_ENABLE_BIT   0x02
#define SWI_IGMP_IGNORE_CPUPORT_BIT 0x04
#define SWI_IGMP_QRYINTERVAL_OFFSET 8
#define SWI_IGMP_ROBUSTVAR_OFFSET   6

// The option bits for the hardware IGMP snooping
#define SWI_TRAP_IGMP_PACKET_BIT    0x08
#define SWI_TRAP_IGMP_PACKET_OFFSET 3
#define SWI_IGMP_CROSS_VLAN_BIT     0x100
#define SWI_IGMP_CROSS_VLAN_OFFSET  8
#define SWI_IGMP_PACKET_PRI_BIT     0x1800
#define SWI_IGMP_PKT_TXTAG_OFFSET   9
#define SWI_IGMP_PKT_TXTAG_BIT      0x0600
#define SWI_IGMP_PACKET_PRI_OFFSET  11
#define SWI_IGMP_PKT_PRIEN_BIT      0x2000
#define SWI_IGMP_PKT_PRIEN_OFFSET   13
#define SWI_IGMP_CTRL_ACTION_BIT    0xc000
#define SWI_IGMP_CTRL_ACTION_OFFSET 14
#define SWI_IGMP_EXTRA_CTRL_BIT     0x3000
#define SWI_IGMP_EXTRA_CTRL_OFFSET  12
#define SWI_SRCVIO_OVER_IGMP_BIT    0x04
#define SWI_SRCVIO_OVER_IGMP_OFFSET 2
#define SWI_SRCVIO_OVER_DFLT_BIT    0x02
#define SWI_SRCVIO_OVER_DFLT_OFFSET 1

// The register bits for the counter control registers, add - 06/16/05,bolo
#define SWI_COUNTER_BUSY_BIT        0x80
#define SWI_RENEW_PORT_COUNTER      0xc0
#define SWI_ACCESS_COUNTER_FREE     0
#define SWI_ACCESS_COUNTER_BUSY     1

void    delay(unsigned int x); // add - 06/27/05/bolo
void    SWPortLink(int port_no, int accessMode, word *nway, word *speed, word *duplex, word *flowctrl);
void    SWTrunkConfig(int trunkSwitch);
void    SWMirrorGetConfig(int port_no, word *receiveOption, word *transmitOption, word *typeOption);
void    SWMirrorSetConfig(int port_no, word rxOptItem, word txOptItem, int *typeOptItem);
void    SWPortVLANConfig(int group_no, int *portMapOpt);
void    SWTagVLANConfig(int filterIndex, int vid, int fid, int filterVlaid, int priQ, int *tagMapOpt, int *portMapOpt);
void    SWVLANOptionConfig(int optionItem, int *optionValue);
void    SWPortPriConfig(int port_no, int portPriEn, int portPriQOpt, int portVID); // mod - 08/12/05 for the port VID
void    SWVLANPriConfig(int port_no, int *vlanPriEn, int priQID, int vlanQOpt, int ipoVlan);
void    SWTOSPriConfig(int *tosPriEn, int tospriQID, int tosQOpt);
void    SWSrvPriConfig(int *tsrvPriEn, int tsrvpriQID, int tsrvQOpt);
void    SWBrdStormConfig(int stormEnable, int dropEnable, int thres100Mbp, int thres10Mbp, int mulpktStorm);
void    SWTxBandConfig(int port_no, int txBWCEnable, int txBWThresh);
void    SWRxBandConfig(int port_no, int rxBWCEnable, int rxBWThresh);
void    SWPortSecurityConfig(int port_no, int portSecOpt, int closePort); 
void    SWSecurityOptionConfig(int *sourceIntrusion, int *sourceViolation);
int     SWLearnTableRead(int accessControl, word *portMap, int *fidVal, byte *macAddr, word *entryStatus, word *infoCtrlAge);
int     SWLearnTableWrite(int accessControl, int addrType, word infoCtrlAge, word *portMap, int fidVal, byte *macAddr);
void    SWIGMPConfig(int igmpEnable, int ignoreCPUPort, int queryInterval, int robustVariable, word *routerPortMap);
void    SWIGMPOptConfig(int igmpOptItem, word igmpOptVal);
int     SWIGMPTableRead(int entryIndex, word *entryState, word *portMapVal, byte *macAddr);
int     SWIGMPTableWrite(int entryIndex, word *portMap);
int     SWResetPortCounter(int port_no); // add - 06/16/05,bolo
dword   SWPortCounter(int port_no, int i);
word    ReadPhyReg(int port_no, int regAddr);
void    WritePhyReg(int port_no, int regAddr, word regValue);
word    SWI_ioctl(word cmd, PREGRW ifr);
void    SWI_Reset(void);
word    ReadEEPROM(word address);               // Read a word from register, add - 06/27/05,bolo
void    WriteEEPROM(word address, word value);  // Write a word into EEPROM register
dword   ReadSMI(word address);                  // Read data through SMI interface
void    WriteSMI(word address, dword value);    // Write data through SMI interface

#endif

⌨️ 快捷键说明

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