📄 swfct.h
字号:
#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 + -