summaryrefslogtreecommitdiffstats
path: root/target/linux/realtek/files/drivers/net/rtl819x/common/rtl865x_vlan.h
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/realtek/files/drivers/net/rtl819x/common/rtl865x_vlan.h')
-rw-r--r--target/linux/realtek/files/drivers/net/rtl819x/common/rtl865x_vlan.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/target/linux/realtek/files/drivers/net/rtl819x/common/rtl865x_vlan.h b/target/linux/realtek/files/drivers/net/rtl819x/common/rtl865x_vlan.h
new file mode 100644
index 000000000..6222928a3
--- /dev/null
+++ b/target/linux/realtek/files/drivers/net/rtl819x/common/rtl865x_vlan.h
@@ -0,0 +1,55 @@
+/*
+* Copyright c Realtek Semiconductor Corporation, 2008
+* All rights reserved.
+*
+* Program : Vlan driver
+* Abstract :
+* Author : hyking (hyking_liu@realsil.com.cn)
+*/
+#ifndef RTL865X_VLAN_H
+#define RTL865X_VLAN_H
+
+//#include "rtl_types.h"
+
+#if !defined(REDUCE_MEMORY_SIZE_FOR_16M)
+#define REDUCE_MEMORY_SIZE_FOR_16M
+#endif
+
+
+
+#define VLAN_NUMBER 4096
+#define RTL865X_FDB_NUMBER 4
+
+#define RTL865X_PPTP_HWACC_PORTMASK 0x80
+#define RTL865X_PPTP_HWACC_VLANID 10
+
+
+typedef struct rtl865x_vlan_entry_s {
+ uint32 memberPortMask; /*extension ports [rtl8651_totalExtPortNum-1:0] are located at bits [RTL8651_PORT_NUMBER+rtl8651_totalExtPortNum-1:RTL8651_PORT_NUMBER]*/
+ uint32 untagPortMask; /*extension ports [rtl8651_totalExtPortNum-1:0] are located at bits [RTL8651_PORT_NUMBER+rtl8651_totalExtPortNum-1:RTL8651_PORT_NUMBER]*/
+ uint32 valid:1,
+ fid:2, /*there are 4 fdbs in 865x*/
+ vid:12,
+ refCnt:5; /*reference count: this vlan entry is referenced by networkInterface...*/
+}rtl865x_vlan_entry_t;
+
+int32 rtl865x_initVlanTable(void);
+int32 rtl865x_reinitVlantable(void);
+int32 rtl865x_addVlan(uint16 vid);
+int32 rtl865x_delVlan(uint16 vid);
+int32 rtl865x_addVlanPortMember(uint16 vid, uint32 portMask);
+int32 rtl865x_delVlanPortMember(uint16 vid,uint32 portMask);
+
+#if defined (CONFIG_RTL_HARDWARE_MULTICAST)
+uint32 rtl865x_getVlanPortMask(uint32 vid);
+#endif
+
+int32 rtl865x_setVlanPortTag(uint16 vid,uint32 portMask,uint8 tag);
+int32 rtl865x_setVlanFilterDatabase(uint16 vid, uint32 fid);
+int32 rtl865x_getVlanFilterDatabaseId(uint16 vid, uint32 *fid);
+rtl865x_vlan_entry_t *_rtl8651_getVlanTableEntry(uint16 vid);
+int32 rtl865x_referVlan(uint16 vid);
+int32 rtl865x_deReferVlan(uint16 vid);
+
+#endif
+