aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h')
-rw-r--r--target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h237
1 files changed, 237 insertions, 0 deletions
diff --git a/target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h b/target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h
new file mode 100644
index 0000000000..ad99d8560b
--- /dev/null
+++ b/target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2013 Realtek Semiconductor Corp.
+ * All Rights Reserved.
+ *
+ * Unless you and Realtek execute a separate written software license
+ * agreement governing use of this software, this software is licensed
+ * to you under the terms of the GNU General Public License version 2,
+ * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+ *
+ * $Revision: 76333 $
+ * $Date: 2017-03-09 09:33:15 +0800 (¶g¥|, 09 ¤T¤ë 2017) $
+ *
+ * Purpose : RTL8367C switch high-level API for RTL8367C
+ * Feature : Port security related functions
+ *
+ */
+
+#ifndef _RTL8367C_ASICDRV_PORTSECURITY_H_
+#define _RTL8367C_ASICDRV_PORTSECURITY_H_
+
+#include <rtl8367c_asicdrv.h>
+#include <rtl8367c_asicdrv_unknownMulticast.h>
+#include <rtl8367c_asicdrv_phy.h>
+
+/****************************************************************/
+/* Type Definition */
+/****************************************************************/
+
+#define RTL8367C_MAC7 7
+#define RTL8367C_EXTNO 3
+
+#define RTL8367C_RTCT_PAGE (11)
+#define RTL8367C_RTCT_RESULT_A_REG (27)
+#define RTL8367C_RTCT_RESULT_B_REG (28)
+#define RTL8367C_RTCT_RESULT_C_REG (29)
+#define RTL8367C_RTCT_RESULT_D_REG (30)
+#define RTL8367C_RTCT_STATUS_REG (26)
+
+enum L2_SECURITY_BEHAVE
+{
+ L2_BEHAVE_FLOODING = 0,
+ L2_BEHAVE_DROP,
+ L2_BEHAVE_TRAP,
+ L2_BEHAVE_END
+};
+
+enum L2_UNDA_BEHAVE
+{
+ L2_UNDA_BEHAVE_FLOODING_PMASK = 0,
+ L2_UNDA_BEHAVE_DROP,
+ L2_UNDA_BEHAVE_TRAP,
+ L2_UNDA_BEHAVE_FLOODING,
+ L2_UNDA_BEHAVE_END
+};
+
+enum L2_SECURITY_SA_BEHAVE
+{
+ L2_BEHAVE_SA_FLOODING = 0,
+ L2_BEHAVE_SA_DROP,
+ L2_BEHAVE_SA_TRAP,
+ L2_BEHAVE_SA_COPY28051,
+ L2_BEHAVE_SA_END
+};
+
+/* enum for port current link speed */
+enum SPEEDMODE
+{
+ SPD_10M = 0,
+ SPD_100M,
+ SPD_1000M,
+ SPD_2500M
+};
+
+/* enum for mac link mode */
+enum LINKMODE
+{
+ MAC_NORMAL = 0,
+ MAC_FORCE,
+};
+
+/* enum for port current link duplex mode */
+enum DUPLEXMODE
+{
+ HALF_DUPLEX = 0,
+ FULL_DUPLEX
+};
+
+/* enum for port current MST mode */
+enum MSTMODE
+{
+ SLAVE_MODE= 0,
+ MASTER_MODE
+};
+
+
+enum EXTMODE
+{
+ EXT_DISABLE = 0,
+ EXT_RGMII,
+ EXT_MII_MAC,
+ EXT_MII_PHY,
+ EXT_TMII_MAC,
+ EXT_TMII_PHY,
+ EXT_GMII,
+ EXT_RMII_MAC,
+ EXT_RMII_PHY,
+ EXT_SGMII,
+ EXT_HSGMII,
+ EXT_1000X_100FX,
+ EXT_1000X,
+ EXT_100FX,
+ EXT_RGMII_2,
+ EXT_MII_MAC_2,
+ EXT_MII_PHY_2,
+ EXT_TMII_MAC_2,
+ EXT_TMII_PHY_2,
+ EXT_RMII_MAC_2,
+ EXT_RMII_PHY_2,
+ EXT_END
+};
+
+enum DOSTYPE
+{
+ DOS_DAEQSA = 0,
+ DOS_LANDATTACKS,
+ DOS_BLATATTACKS,
+ DOS_SYNFINSCAN,
+ DOS_XMASCAN,
+ DOS_NULLSCAN,
+ DOS_SYN1024,
+ DOS_TCPSHORTHDR,
+ DOS_TCPFRAGERROR,
+ DOS_ICMPFRAGMENT,
+ DOS_END,
+
+};
+
+typedef struct rtl8367c_port_ability_s{
+ rtk_uint16 forcemode;
+ rtk_uint16 mstfault;
+ rtk_uint16 mstmode;
+ rtk_uint16 nway;
+ rtk_uint16 txpause;
+ rtk_uint16 rxpause;
+ rtk_uint16 link;
+ rtk_uint16 duplex;
+ rtk_uint16 speed;
+}rtl8367c_port_ability_t;
+
+typedef struct rtl8367c_port_status_s{
+
+ rtk_uint16 lpi1000;
+ rtk_uint16 lpi100;
+ rtk_uint16 mstfault;
+ rtk_uint16 mstmode;
+ rtk_uint16 nway;
+ rtk_uint16 txpause;
+ rtk_uint16 rxpause;
+ rtk_uint16 link;
+ rtk_uint16 duplex;
+ rtk_uint16 speed;
+
+}rtl8367c_port_status_t;
+
+typedef struct rtct_result_s
+{
+ rtk_uint32 channelAShort;
+ rtk_uint32 channelBShort;
+ rtk_uint32 channelCShort;
+ rtk_uint32 channelDShort;
+
+ rtk_uint32 channelAOpen;
+ rtk_uint32 channelBOpen;
+ rtk_uint32 channelCOpen;
+ rtk_uint32 channelDOpen;
+
+ rtk_uint32 channelAMismatch;
+ rtk_uint32 channelBMismatch;
+ rtk_uint32 channelCMismatch;
+ rtk_uint32 channelDMismatch;
+
+ rtk_uint32 channelALinedriver;
+ rtk_uint32 channelBLinedriver;
+ rtk_uint32 channelCLinedriver;
+ rtk_uint32 channelDLinedriver;
+
+ rtk_uint32 channelALen;
+ rtk_uint32 channelBLen;
+ rtk_uint32 channelCLen;
+ rtk_uint32 channelDLen;
+} rtl8367c_port_rtct_result_t;
+
+
+/****************************************************************/
+/* Driver Proto Type Definition */
+/****************************************************************/
+extern ret_t rtl8367c_setAsicPortUnknownDaBehavior(rtk_uint32 port, rtk_uint32 behavior);
+extern ret_t rtl8367c_getAsicPortUnknownDaBehavior(rtk_uint32 port, rtk_uint32 *pBehavior);
+extern ret_t rtl8367c_setAsicPortUnknownSaBehavior(rtk_uint32 behavior);
+extern ret_t rtl8367c_getAsicPortUnknownSaBehavior(rtk_uint32 *pBehavior);
+extern ret_t rtl8367c_setAsicPortUnmatchedSaBehavior(rtk_uint32 behavior);
+extern ret_t rtl8367c_getAsicPortUnmatchedSaBehavior(rtk_uint32 *pBehavior);
+extern ret_t rtl8367c_setAsicPortUnmatchedSaMoving(rtk_uint32 port, rtk_uint32 enabled);
+extern ret_t rtl8367c_getAsicPortUnmatchedSaMoving(rtk_uint32 port, rtk_uint32 *pEnabled);
+extern ret_t rtl8367c_setAsicPortUnknownDaFloodingPortmask(rtk_uint32 portmask);
+extern ret_t rtl8367c_getAsicPortUnknownDaFloodingPortmask(rtk_uint32 *pPortmask);
+extern ret_t rtl8367c_setAsicPortUnknownMulticastFloodingPortmask(rtk_uint32 portmask);
+extern ret_t rtl8367c_getAsicPortUnknownMulticastFloodingPortmask(rtk_uint32 *pPortmask);
+extern ret_t rtl8367c_setAsicPortBcastFloodingPortmask(rtk_uint32 portmask);
+extern ret_t rtl8367c_getAsicPortBcastFloodingPortmask(rtk_uint32 *pPortmask);
+extern ret_t rtl8367c_setAsicPortBlockSpa(rtk_uint32 port, rtk_uint32 block);
+extern ret_t rtl8367c_getAsicPortBlockSpa(rtk_uint32 port, rtk_uint32 *pBlock);
+extern ret_t rtl8367c_setAsicPortForceLink(rtk_uint32 port, rtl8367c_port_ability_t *pPortAbility);
+extern ret_t rtl8367c_getAsicPortForceLink(rtk_uint32 port, rtl8367c_port_ability_t *pPortAbility);
+extern ret_t rtl8367c_getAsicPortStatus(rtk_uint32 port, rtl8367c_port_status_t *pPortStatus);
+extern ret_t rtl8367c_setAsicPortForceLinkExt(rtk_uint32 id, rtl8367c_port_ability_t *pPortAbility);
+extern ret_t rtl8367c_getAsicPortForceLinkExt(rtk_uint32 id, rtl8367c_port_ability_t *pPortAbility);
+extern ret_t rtl8367c_setAsicPortExtMode(rtk_uint32 id, rtk_uint32 mode);
+extern ret_t rtl8367c_getAsicPortExtMode(rtk_uint32 id, rtk_uint32 *pMode);
+extern ret_t rtl8367c_setAsicPortDos(rtk_uint32 type, rtk_uint32 drop);
+extern ret_t rtl8367c_getAsicPortDos(rtk_uint32 type, rtk_uint32* pDrop);
+extern ret_t rtl8367c_setAsicPortEnableAll(rtk_uint32 enable);
+extern ret_t rtl8367c_getAsicPortEnableAll(rtk_uint32 *pEnable);
+extern ret_t rtl8367c_setAsicPortSmallIpg(rtk_uint32 port, rtk_uint32 enable);
+extern ret_t rtl8367c_getAsicPortSmallIpg(rtk_uint32 port, rtk_uint32* pEnable);
+extern ret_t rtl8367c_setAsicPortLoopback(rtk_uint32 port, rtk_uint32 enable);
+extern ret_t rtl8367c_getAsicPortLoopback(rtk_uint32 port, rtk_uint32 *pEnable);
+extern ret_t rtl8367c_setAsicPortRTCTEnable(rtk_uint32 portmask);
+extern ret_t rtl8367c_setAsicPortRTCTDisable(rtk_uint32 portmask);
+extern ret_t rtl8367c_getAsicPortRTCTResult(rtk_uint32 port, rtl8367c_port_rtct_result_t *pResult);
+extern ret_t rtl8367c_sdsReset(rtk_uint32 id);
+extern ret_t rtl8367c_getSdsLinkStatus(rtk_uint32 ext_id, rtk_uint32 *pSignalDetect, rtk_uint32 *pSync, rtk_uint32 *pLink);
+extern ret_t rtl8367c_setSgmiiNway(rtk_uint32 ext_id, rtk_uint32 state);
+extern ret_t rtl8367c_getSgmiiNway(rtk_uint32 ext_id, rtk_uint32 *pState);
+
+#endif /*_RTL8367C_ASICDRV_PORTSECURITY_H_*/
+