diff options
author | Roman Yeryomin <roman@advem.lv> | 2012-09-13 00:40:35 +0300 |
---|---|---|
committer | Roman Yeryomin <roman@advem.lv> | 2013-05-26 00:44:46 +0300 |
commit | a27354c9021a8423ef8c7d2bffad49cbf639eec1 (patch) | |
tree | 2355929a4b8cf1888cd0797cfabdb42e0077c524 /target/linux/realtek/files/drivers/net/rtl819x/AsicDriver/rtl865x_asicL4.h | |
parent | 24a776baeb5d3cd903b144c89ceb11c5bc36a49e (diff) |
Add realtek target files
Signed-off-by: Roman Yeryomin <roman@advem.lv>
Diffstat (limited to 'target/linux/realtek/files/drivers/net/rtl819x/AsicDriver/rtl865x_asicL4.h')
-rw-r--r-- | target/linux/realtek/files/drivers/net/rtl819x/AsicDriver/rtl865x_asicL4.h | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/target/linux/realtek/files/drivers/net/rtl819x/AsicDriver/rtl865x_asicL4.h b/target/linux/realtek/files/drivers/net/rtl819x/AsicDriver/rtl865x_asicL4.h new file mode 100644 index 000000000..e8d14e802 --- /dev/null +++ b/target/linux/realtek/files/drivers/net/rtl819x/AsicDriver/rtl865x_asicL4.h @@ -0,0 +1,193 @@ +/* +* Copyright c Realtek Semiconductor Corporation, 2009 +* All rights reserved. +* +* Program : Switch table Layer4 napt driver,following features are included: +* napt +* Abstract : +* Author : hyking (hyking_liu@realsil.com.cn) +*/ + +#ifndef RTL865X_ASICL4_H +#define RTL865X_ASICL4_H + +#define RTL8651_DYNAMIC_NAPT_ENTRY (0x0<<0) +#define RTL8651_STATIC_NAPT_ENTRY (0x1<<0) +#define RTL8651_LIBERAL_NAPT_ENTRY (0x2<<0) + +#define RTL8651_TCPUDPTBL_SIZE 1024 +#define RTL8651_SERVERPORTTBL_SIZE 16 +#define RTL8651_ALGTBL_SIZE 48 +#define RTL8651_ICMPTBL_SIZE 32 +#define RTL8651_TCPUDPTBL_BITS 10 + +#define RTL8651_NAPT_OUTBOUND_FLOW (1<<2) //exact value in ASIC +#define RTL8651_NAPT_INBOUND_FLOW (0<<2) //exact value in ASIC +#define RTL8651_NAPT_UNIDIRECTIONAL_FLOW (2<<2) //exact value in ASIC +#define RTL8651_NAPT_SYNFIN_QUIET (4<<2) //exact value in ASIC +#define RTL8651_NAPT_CHKAUTOLEARN (1<<5) +//In RTL8651, TCPFlag field records current state of entry +#define RTL8651_TCPNAPT_WAIT4FIN (0x4 <<2) //exact value in ASIC +#define RTL8651_TCPNAPT_WAITINBOUND (0x2 <<2) //exact value in ASIC +#define RTL8651_TCPNAPT_WAITOUTBOUND (0x1 <<2) //exact value in ASIC + +#define HASH_UDP 0 /* flag for hash UDP */ +#define HASH_TCP 1 /* flag for hash TCP */ +#define HASH_FOR_TRAN 0 /* flag for hash hash1 and hash2 index */ +#define HASH_FOR_VERI 2 /* flag for hash verification value of enhanced hash1 */ + +typedef struct { +#ifndef _LITTLE_ENDIAN + /* word 0 */ + ipaddr_t intIPAddr; + /* word 1 */ + uint32 reserv0 : 1; + uint32 selEIdx : 10; + uint32 selIPIdx : 4; + uint32 isStatic : 1; + uint32 dedicate : 1; + uint32 collision2 : 1; + uint32 offset : 6; + uint32 agingTime : 6; + uint32 collision : 1; + uint32 valid : 1; + + /* word 2 */ + uint32 reserv2 : 12; + uint32 isTCP : 1; + uint32 TCPFlag : 3; + uint32 intPort : 16; +#else /*_LITTLE_ENDIAN*/ + /* word 0 */ + ipaddr_t intIPAddr; + /* word 1 */ + uint32 valid : 1; + uint32 collision : 1; + uint32 agingTime : 6; + uint32 offset : 6; + uint32 collision2 : 1; + uint32 dedicate : 1; + uint32 isStatic : 1; + uint32 selIPIdx : 4; + uint32 selEIdx : 10; + uint32 reserv0 : 1; + + /* word 2 */ + uint32 intPort : 16; + uint32 TCPFlag : 3; + uint32 isTCP : 1; + uint32 reserv2 : 12; +#endif /*_LITTLE_ENDIAN*/ + /* word 3 */ + uint32 reservw3; + /* word 4 */ + uint32 reservw4; + /* word 5 */ + uint32 reservw5; + /* word 6 */ + uint32 reservw6; + /* word 7 */ + uint32 reservw7; +} rtl8651_tblAsic_naptTcpUdpTable_t; + +typedef struct { +#ifndef _LITTLE_ENDIAN + /* word 0 */ + ipaddr_t intIPAddr; + /* word 1 */ + uint32 reserv0 : 1; + uint32 selEIdx : 10; + uint32 selIPIdx : 4; + uint32 isStatic : 1; + uint32 dedicate : 1; + uint32 collision2 : 1; + uint32 offset : 6; + uint32 agingTime : 6; + uint32 collision : 1; + uint32 valid : 1; + + /* word 2 */ + uint32 reserv2 : 8; + uint32 priority :3; + uint32 priValid :1; + uint32 isTCP : 1; + uint32 TCPFlag : 3; + uint32 intPort : 16; +#else /*_LITTLE_ENDIAN*/ + /* word 0 */ + ipaddr_t intIPAddr; + /* word 1 */ + uint32 valid : 1; + uint32 collision : 1; + uint32 agingTime : 6; + uint32 offset : 6; + uint32 collision2 : 1; + uint32 dedicate : 1; + uint32 isStatic : 1; + uint32 selIPIdx : 4; + uint32 selEIdx : 10; + uint32 reserv0 : 1; + + /* word 2 */ + uint32 intPort : 16; + uint32 TCPFlag : 3; + uint32 isTCP : 1; + uint32 priValid :1; + uint32 priority :3; + uint32 reserv2 : 8; +#endif /*_LITTLE_ENDIAN*/ + /* word 3 */ + uint32 reservw3; + /* word 4 */ + uint32 reservw4; + /* word 5 */ + uint32 reservw5; + /* word 6 */ + uint32 reservw6; + /* word 7 */ + uint32 reservw7; +} rtl865xc_tblAsic_naptTcpUdpTable_t; + +typedef struct rtl865x_tblAsicDrv_naptTcpUdpParam_s { + ipaddr_t insideLocalIpAddr; + uint16 insideLocalPort; + uint32 ageSec; + uint8 tcpFlag; + uint8 offset; + uint8 selExtIPIdx; + uint16 selEIdx; + uint32 isTcp:1, + isCollision:1, + isStatic:1, + isCollision2:1, + isDedicated:1, + isValid:1, + priValid:1, + priority:3; + +} rtl865x_tblAsicDrv_naptTcpUdpParam_t; + + +//uint32 _Is4WayHashEnabled( void ); +int32 _set4WayHash( int32 enable ); +int32 _rtl8651_enableEnhancedHash1(void); +int32 _rtl8651_disableEnhancedHash1(void); + +uint32 rtl8651_naptTcpUdpTableIndex(int8 isTCP, ipaddr_t srcAddr, uint16 srcPort, ipaddr_t destAddr, uint16 destPort); + +int32 rtl8651_setAsicNaptTcpUdpTable(int8 forced, uint32 index, rtl865x_tblAsicDrv_naptTcpUdpParam_t *naptTcpUdpp); +int32 rtl8651_getAsicNaptTcpUdpTable(uint32 index, rtl865x_tblAsicDrv_naptTcpUdpParam_t *naptTcpUdpp); +int32 rtl8651_delAsicNaptTcpUdpTable(uint32 start, uint32 end); + +int32 rtl8651_setAsicNaptIcmpTimeout(uint32 timeout); +int32 rtl8651_getAsicNaptIcmpTimeout(uint32 *timeout); +int32 rtl8651_setAsicNaptUdpTimeout(uint32 timeout); +int32 rtl8651_getAsicNaptUdpTimeout(uint32 *timeout); +int32 rtl8651_setAsicNaptTcpLongTimeout(uint32 timeout); +int32 rtl8651_getAsicNaptTcpLongTimeout(uint32 *timeout); +int32 rtl8651_setAsicNaptTcpMediumTimeout(uint32 timeout); +int32 rtl8651_getAsicNaptTcpMediumTimeout(uint32 *timeout); +int32 rtl8651_setAsicNaptTcpFastTimeout(uint32 timeout); +int32 rtl8651_getAsicNaptTcpFastTimeout(uint32 *timeout); + +#endif |