| /******************************************************************************* |
| Copyright (C) Marvell International Ltd. and its affiliates |
| |
| This software file (the "File") is owned and distributed by Marvell |
| International Ltd. and/or its affiliates ("Marvell") under the following |
| alternative licensing terms. Once you have made an election to distribute the |
| File under one of the following license alternatives, please (i) delete this |
| introductory statement regarding license alternatives, (ii) delete the two |
| license alternatives that you have not elected to use and (iii) preserve the |
| Marvell copyright notice above. |
| |
| ******************************************************************************** |
| Marvell Commercial License Option |
| |
| If you received this File from Marvell and you have entered into a commercial |
| license agreement (a "Commercial License") with Marvell, the File is licensed |
| to you under the terms of the applicable Commercial License. |
| |
| ******************************************************************************** |
| Marvell GPL License Option |
| |
| If you received this File from Marvell, you may opt to use, redistribute and/or |
| modify this File in accordance with the terms and conditions of the General |
| Public License Version 2, June 1991 (the "GPL License"), a copy of which is |
| available along with the File in the license.txt file or by writing to the Free |
| Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or |
| on the worldwide web at http://www.gnu.org/licenses/gpl.txt. |
| |
| THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED |
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY |
| DISCLAIMED. The GPL License provides additional details about this warranty |
| disclaimer. |
| ******************************************************************************** |
| Marvell BSD License Option |
| |
| If you received this File from Marvell, you may opt to use, redistribute and/or |
| modify this File under the following licensing terms. |
| Redistribution and use in source and binary forms, with or without modification, |
| are permitted provided that the following conditions are met: |
| |
| * Redistributions of source code must retain the above copyright notice, |
| this list of conditions and the following disclaimer. |
| |
| * Redistributions in binary form must reproduce the above copyright |
| notice, this list of conditions and the following disclaimer in the |
| documentation and/or other materials provided with the distribution. |
| |
| * Neither the name of Marvell nor the names of its contributors may be |
| used to endorse or promote products derived from this software without |
| specific prior written permission. |
| |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR |
| ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
| ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| ******************************************************************************/ |
| |
| #ifndef _TPM_MNG_IF_H_ |
| #define _TPM_MNG_IF_H_ |
| |
| /* Include Files |
| ------------------------------------------------------------------------------*/ |
| |
| /* Definitions |
| ------------------------------------------------------------------------------*/ |
| #define TPM_NUM_DEVICES (1) |
| #define TPM_DEV_NAME ("tpm") |
| #define MV_TPM_IOCTL_MAGIC ('T') |
| |
| #define MAX_ETH_PORT_ALARM 10 |
| #define MAX_FRAME_SIZE 1600 |
| |
| #define MV_TPM_IOCTL_INIT_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 1, unsigned int) |
| #define MV_TPM_IOCTL_ADMIN_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 2, unsigned int) |
| #define MV_TPM_IOCTL_ADD_ACL_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 3, unsigned int) |
| #define MV_TPM_IOCTL_DEL_ACL_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 4, unsigned int) |
| #define MV_TPM_IOCTL_CTRL_ACL_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 5, unsigned int) |
| #define MV_TPM_IOCTL_MC_STREAM_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 6, unsigned int) |
| #define MV_TPM_IOCTL_MNG_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 7, unsigned int) |
| #define MV_TPM_IOCTL_SW_SECURITY_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 8, unsigned int) |
| #define MV_TPM_IOCTL_SW_VLAN_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 9, unsigned int) |
| #define MV_TPM_IOCTL_SW_TM_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 10, unsigned int) |
| #define MV_TPM_IOCTL_IGMP_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 11, unsigned int) |
| #define MV_TPM_IOCTL_PP_TM_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 12, unsigned int) |
| #define MV_TPM_IOCTL_PRINT_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 13, unsigned int) |
| #define MV_TPM_IOCTL_TRACE_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 14, unsigned int) |
| #define MV_TPM_IOCTL_SW_PHY_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 15, unsigned int) |
| #define MV_TPM_IOCTL_RESET_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 16, unsigned int) |
| #define MV_TPM_IOCTL_ALARM_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 17, unsigned int) |
| #define MV_TPM_IOCTL_COUNTER_CLEAR_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 18, unsigned int) |
| #define MV_TPM_IOCTL_GET_MOD_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 19, unsigned int) |
| #define MV_TPM_IOCTL_RX_IGMP _IOWR(MV_TPM_IOCTL_MAGIC, 20, unsigned int) |
| #define MV_TPM_IOCTL_TX_IGMP _IOW(MV_TPM_IOCTL_MAGIC, 21, unsigned int) |
| #define MV_TPM_IOCTL_SETUP_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 22, unsigned int) |
| #define MV_TPM_IOCTL_CPU_LPBK_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 23, unsigned int) |
| #define MV_TPM_IOCTL_AGE_COUNT_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 24, unsigned int) |
| #define MV_TPM_IOCTL_MC_VLAN_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 25, unsigned int) |
| #define MV_TPM_IOCTL_MTU_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 26, unsigned int) |
| #define MV_TPM_IOCTL_TPM_CHECK_SECTION _IOW(MV_TPM_IOCTL_MAGIC, 27, unsigned int) |
| #define MV_TPM_IOCTL_FLUSH_ATU_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 28, unsigned int) |
| #define MV_TPM_IOCTL_FLUSH_VTU_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 29, unsigned int) |
| #define MV_TPM_IOCTL_SET_IPV6_CM_PARSE_WIN_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 30, unsigned int) |
| #define MV_TPM_IOCTL_SET_ACTIVE_WAN_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 31, unsigned int) |
| #define MV_TPM_IOCTL_HOT_SWAP_PROFILE_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 32, unsigned int) |
| #define MV_TPM_IOCTL_SET_GMAC_LPBK_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 33, unsigned int) |
| #define MV_TPM_IOCTL_SET_PORT_HWF_ADMIN_SECTION _IOWR(MV_TPM_IOCTL_MAGIC, 34, unsigned int) |
| |
| |
| #define MV_APM_IOCTL_MAGIC ('A') |
| |
| #define MV_APM_IOCTL_PM_1_SWPORT_SECTION _IOWR(MV_APM_IOCTL_MAGIC, 1, unsigned int) |
| #define MV_APM_IOCTL_PM_3_SWPORT_SECTION _IOWR(MV_APM_IOCTL_MAGIC, 2, unsigned int) |
| |
| |
| /* Enums |
| ------------------------------------------------------------------------------*/ |
| |
| typedef enum tpm_ioctl_cmd_type |
| { |
| MV_TPM_IOCTL_INIT = 1, |
| MV_TPM_IOCTL_CRT_OWNER, |
| MV_TPM_IOCTL_REQ_API_G_OWNER, |
| MV_TPM_IOCTL_GET_API_G_OWNER, |
| MV_TPM_IOCTL_DEL_SECTION, |
| MV_TPM_IOCTL_GET_SECTION_SIZE, |
| MV_TPM_IOCTL_SET_DROP_PRECEDENCE_MODE, |
| MV_TPM_IOCTL_ADD_L2_ACL_RULE, |
| MV_TPM_IOCTL_ADD_L3_ACL_RULE, |
| MV_TPM_IOCTL_ADD_IPv4_ACL_RULE, |
| MV_TPM_IOCTL_DEL_L2_ACL_RULE, |
| MV_TPM_IOCTL_DEL_L3_ACL_RULE, |
| MV_TPM_IOCTL_DEL_IPv4_ACL_RULE, |
| MV_TPM_IOCTL_GET_NEXT_VALID_RULE, |
| MV_TPM_IOCTL_ADD_IPv4_MC_STREAM, |
| MV_TPM_IOCTL_MOD_IPv4_MC_STREAM, |
| MV_TPM_IOCTL_DEL_IPv4_MC_STREAM, |
| MV_TPM_IOCTL_ADD_OMCI_CHNL, |
| MV_TPM_IOCTL_DEL_OMCI_CHNL, |
| MV_TPM_IOCTL_GET_OMCI_CHNL, |
| MV_TPM_IOCTL_ADD_OAM_CHNL, |
| MV_TPM_IOCTL_DEL_OAM_CHNL, |
| MV_TPM_IOCTL_GET_OAM_CHNL, |
| MV_TPM_IOCTL_SW_ADD_STATIC_MAC, |
| MV_TPM_IOCTL_SW_DEL_STATIC_MAC, |
| MV_TPM_IOCTL_SW_SET_PORT_MAC_LIMIT, |
| MV_TPM_IOCTL_SW_SET_PORT_FLOOD, |
| MV_TPM_IOCTL_SW_SET_PORT_TAGGED, |
| MV_TPM_IOCTL_SW_SET_PORT_UNTAGGED, |
| MV_TPM_IOCTL_SW_PORT_ADD_VID, |
| MV_TPM_IOCTL_SW_PORT_DEL_VID, |
| MV_TPM_IOCTL_SW_PORT_SER_VID_FILTER, |
| MV_TPM_IOCTL_SW_SET_UNI_SCHED, |
| MV_TPM_IOCTL_SW_UNI_QUE_WEIGHT, |
| MV_TPM_IOCTL_SW_SET_UNI_INGR_POLICE_RATE, |
| MV_TPM_IOCTL_SW_UNI_TC_INGR_POLICE_RATE, |
| MV_TPM_IOCTL_SW_SET_UNI_EGR_RATE_LIMIT, |
| MV_TPM_IOCTL_TM_SET_WAN_EGR_QUE_SCHED, |
| MV_TPM_IOCTL_TM_SET_WAN_INGR_QUE_SCHED, |
| MV_TPM_IOCTL_TM_SET_WAN_SCHED_EGR_RATE_LIMIT, |
| MV_TPM_IOCTL_TM_SET_WAN_QUE_EGR_RATE_LIMIT, |
| MV_TPM_IOCTL_TM_SET_WAN_INGR_RATE_LIMIT, |
| MV_TPM_IOCTL_TM_SET_WAN_QUE_INGR_RATE_LIMIT, |
| MV_TPM_IOCTL_IGMP_SET_PORT_FRWD_MODE, |
| MV_TPM_IOCTL_IGMP_GET_PORT_FRWD_MODE, |
| MV_TPM_IOCTL_PRINT_ETHER_PORTS, |
| MV_TPM_IOCTL_PRINT_TX_MODULES, |
| MV_TPM_IOCTL_PRINT_GMAC_CONFIG, |
| MV_TPM_IOCTL_PRINT_GMAC_FUNC, |
| MV_TPM_IOCTL_PRINT_EXT_PORT_MAP, /*not used anymore - can be reused*/ |
| MV_TPM_IOCTL_PRINT_IGMP, |
| MV_TPM_IOCTL_PRINT_MISC, |
| MV_TPM_IOCTL_PRINT_OWNERS, |
| MV_TPM_IOCTL_PRINT_API_GROUP, /*not used anymore - can be reused*/ |
| MV_TPM_IOCTL_PRINT_VLAN_TYPE, |
| MV_TPM_IOCTL_PRINT_VALID_API_SECTIONS, |
| MV_TPM_IOCTL_PRINT_FULL_API_SECTIONS, |
| MV_TPM_IOCTL_PRINT_MOD_SHADOW_RANGE, /*not used anymore - can be reused*/ |
| MV_TPM_IOCTL_PRINT_PNC_SHADOW_RANGE, |
| MV_TPM_IOCTL_PRINT_VALID_PNC_RANGES, |
| MV_TPM_IOCTL_PRINT_INIT_TABLES, |
| |
| MV_TPM_IOCTL_PRINT_MOD2_TMP_PATTERN, |
| MV_TPM_IOCTL_PRINT_MOD2_JUMP_RANGE, /*not used anymore - can be reused*/ |
| MV_TPM_IOCTL_PRINT_MOD2_JUMP_ALL, |
| MV_TPM_IOCTL_PRINT_MOD2_MAIN_RANGE, /*not used anymore - can be reused*/ |
| MV_TPM_IOCTL_PRINT_MOD2_MAIN_ALL, |
| MV_TPM_IOCTL_PRINT_MOD2_CFG, |
| MV_TPM_IOCTL_PRINT_MOD2_RULE, |
| |
| MV_TPM_IOCTL_TRACE_STATUS, |
| MV_TPM_IOCTL_TRACE_SET, |
| MV_TPM_IOCTL_TRACE_MODULE_SET, |
| |
| MV_TPM_IOCTL_RESERVED_1, |
| MV_TPM_IOCTL_RESERVED_2, |
| |
| MV_TPM_IOCTL_SW_PHY_SET_AUTONEG_MODE, |
| MV_TPM_IOCTL_SW_PHY_GET_AUTONEG_MODE, |
| MV_TPM_IOCTL_SW_PHY_RESTART_AUTONEG, |
| MV_TPM_IOCTL_SW_PHY_SET_PORT_STATE, |
| MV_TPM_IOCTL_SW_PHY_GET_PORT_STATE, |
| MV_TPM_IOCTL_SW_PHY_GET_LINK_STATUS, |
| MV_TPM_IOCTL_SW_PHY_SET_PORT_FLOW_CONTROL, |
| MV_TPM_IOCTL_SW_PHY_GET_PORT_FLOW_CONTROL, |
| MV_TPM_IOCTL_SW_PHY_SET_PORT_SPEED, |
| MV_TPM_IOCTL_SW_PHY_GET_PORT_SPEED, |
| MV_TPM_IOCTL_SW_PORT_VLAN_EGRESS_MODE, |
| MV_TPM_IOCTL_SW_PORT_SET_DEFAULT_VLAN, |
| MV_TPM_IOCTL_SW_PORT_GET_DEFAULT_VLAN, |
| MV_TPM_IOCTL_SW_PORT_SET_DEFAULT_PRIORITY, |
| MV_TPM_IOCTL_SW_PORT_GET_DEFAULT_PRIORITY, |
| MV_TPM_IOCTL_SW_PORT_CLEAR_VID, |
| MV_TPM_IOCTL_SW_PHY_SET_PORT_LOOPBACK, |
| MV_TPM_IOCTL_SW_PHY_GET_PORT_LOOPBACK, |
| |
| MV_TPM_IOCTL_ALARM_GET_ETH_PORT, |
| MV_TPM_IOCTL_SW_PHY_CONVERT_PORT_INDEX, |
| MV_TPM_IOCTL_ADD_LOOP_DETECT_CHNL, |
| MV_TPM_IOCTL_DEL_LOOP_DETECT_CHNL, |
| MV_TPM_IOCTL_ADD_OAM_LOOPBACK_CHNL, |
| MV_TPM_IOCTL_DEL_OAM_LOOPBACK_CHNL, |
| MV_TPM_IOCTL_SW_PHY_SET_PORT_DUPLEX_MODE, |
| MV_TPM_IOCTL_SW_SET_MAC_AGE_TIME, |
| MV_TPM_IOCTL_SW_GET_MAC_AGE_TIME, |
| MV_TPM_IOCTL_SW_SET_MAC_LEARN, |
| MV_TPM_IOCTL_SW_GET_PORT_FLOOD, |
| MV_TPM_IOCTL_UNI_2_SW_PORT, |
| |
| MV_TPM_IOCTL_RESERVED_3, |
| MV_TPM_IOCTL_RESERVED_4, |
| MV_TPM_IOCTL_RESERVED_5, |
| MV_TPM_IOCTL_RESERVED_6, |
| |
| MV_TPM_IOCTL_SW_PHY_GET_DUPLEX_STATUS, |
| MV_TPM_IOCTL_SW_PHY_GET_SPEED_MODE, |
| MV_TPM_IOCTL_SW_CLEAR_DYNAMIC_MAC, |
| MV_TPM_IOCTL_SW_SET_MIRROR, |
| MV_TPM_IOCTL_SW_GET_MIRROR, |
| MV_TPM_IOCTL_SW_GET_MAC_LEARN, |
| MV_TPM_IOCTL_SW_SET_TRUNK_PORT, |
| MV_TPM_IOCTL_SW_SET_TRUNK_MASK, |
| MV_TPM_IOCTL_SW_PHY_GET_PORT_DUPLEX_MODE, |
| MV_TPM_IOCTL_SET_MTU_SIZE, |
| MV_TPM_IOCTL_GET_MTU_SIZE, |
| MV_TPM_IOCTL_GET_PM_COUNTERS, |
| MV_TPM_IOCTL_CLEAR_PM_COUNTERS, |
| MV_TPM_IOCTL_SW_SET_ISOLATE_PORT_VECTOR, |
| MV_TPM_IOCTL_SW_GET_UNI_EGR_RATE_LIMIT, |
| MV_TPM_IOCTL_SW_GET_UNI_INGR_POLICE_RATE, |
| |
| MV_TPM_IOCTL_SET_MOD_RULE, |
| MV_TPM_IOCTL_DEL_MOD_RULE, |
| MV_TPM_IOCTL_GET_MOD_RULE, |
| MV_TPM_IOCTL_INV_MOD_RULES, |
| |
| MV_TPM_IOCTL_PRINT_RX_MODULES, |
| MV_TPM_IOCTL_SW_PORT_ADD_ALL_VID, |
| MV_TPM_IOCTL_SW_GET_ISOLATE_PORT_VECTOR, |
| MV_TPM_IOCTL_SW_PHY_GET_PORT_FC_STATE, |
| MV_TPM_IOCTL_SW_ADD_VID_GROUP, |
| MV_TPM_IOCTL_SW_DEL_VID_GROUP, |
| MV_TPM_IOCTL_IGMP_SET_CPU_RX_Q, |
| MV_TPM_IOCTL_IGMP_GET_CPU_RX_Q, |
| |
| MV_TPM_IOCTL_ADD_CPU_WAN_LPBK, |
| MV_TPM_IOCTL_DEL_CPU_WAN_LPBK, |
| |
| MV_TPM_IOCTL_GET_LU_ENTRIES, |
| MV_TPM_IOCTL_GET_ALL_HIT_COUNTERS, |
| MV_TPM_IOCTL_SET_LU_COUNT_MASK, |
| MV_TPM_IOCTL_GET_HIT_COUNT, |
| MV_TPM_IOCTL_SET_LU_THESHOLD, |
| MV_TPM_IOCTL_RESET_COUNT_GROUP, |
| |
| MV_TPM_IOCTL_ADD_IPV6_NH_ACL_RULE, |
| MV_TPM_IOCTL_DEL_IPV6_NH_ACL_RULE, |
| MV_TPM_IOCTL_ADD_IPV6_GEN_ACL_RULE, |
| MV_TPM_IOCTL_DEL_IPV6_GEN_ACL_RULE, |
| MV_TPM_IOCTL_ADD_IPV6_DIP_ACL_RULE, |
| MV_TPM_IOCTL_DEL_IPV6_DIP_ACL_RULE, |
| MV_TPM_IOCTL_ADD_IPV6_L4_PORTS_ACL_RULE, |
| MV_TPM_IOCTL_DEL_IPV6_L4_PORTS_ACL_RULE, |
| |
| MV_TPM_IOCTL_SET_MC_VID_PORT_VIDS, |
| MV_TPM_IOCTL_SET_MTU_ADMIN, |
| MV_TPM_IOCTL_SET_MTU, |
| MV_TPM_IOCTL_SET_PPPOE_MTU, |
| |
| MV_TPM_IOCTL_SET_IGMP_PROXY_SA_MAC, |
| MV_TPM_IOCTL_GET_IGMP_PROXY_SA_MAC, |
| MV_TPM_IOCTL_ADD_IPv6_MC_STREAM, |
| MV_TPM_IOCTL_MOD_IPv6_MC_STREAM, |
| MV_TPM_IOCTL_DEL_IPv6_MC_STREAM, |
| |
| MV_TPM_IOCTL_ADD_IPV6_GEN_5T_RULE, |
| MV_TPM_IOCTL_DEL_IPV6_GEN_5T_RULE, |
| MV_TPM_IOCTL_ADD_IPV6_DIP_5T_RULE, |
| MV_TPM_IOCTL_DEL_IPV6_DIP_5T_RULE, |
| MV_TPM_IOCTL_ADD_IPV6_L4_PORTS_5T_RULE, |
| MV_TPM_IOCTL_DEL_IPV6_L4_PORTS_5T_RULE, |
| |
| MV_TPM_IOCTL_ADD_CTC_CM_ACL_RULE, |
| MV_TPM_IOCTL_DEL_CTC_CM_ACL_RULE, |
| MV_TPM_IOCTL_ADD_CTC_CM_IPV6_ACL_RULE, |
| MV_TPM_IOCTL_SET_CTC_CM_IPV6_PARSE_WIN, |
| MV_TPM_IOCTL_ADD_MAC_LEARN_ACL_RULE, |
| MV_TPM_IOCTL_DEL_MAC_LEARN_ACL_RULE, |
| MV_TPM_IOCTL_SET_MAC_LEARN_DEFAULT_ACTION, |
| MV_TPM_IOCTL_TM_SET_GMAC0_INGR_RATE_LIMIT, |
| MV_TPM_IOCTL_GET_MAC_LEARN_ENTRY_NUM, |
| MV_TPM_IOCTL_ADD_DS_LOAD_BALANCE_RULE, |
| MV_TPM_IOCTL_DEL_DS_LOAD_BALANCE_RULE, |
| MV_TPM_IOCTL_ADD_IPv4_MC_STREAM_SET_QUEUE, |
| MV_TPM_IOCTL_ADD_IPv6_MC_STREAM_SET_QUEUE, |
| MV_TPM_IOCTL_SW_PORT_ADD_VID_SET_EGRESS_MODE, |
| MV_TPM_IOCTL_SW_SET_STATIC_MULTICAST_MAC, |
| |
| } tpm_ioctl_cmd_type_t; |
| |
| /* Typedefs |
| ------------------------------------------------------------------------------*/ |
| |
| /* Print Section |
| ** ============== |
| ** Function list: |
| ** 1. tpm_print_etherports |
| ** 2. tpm_print_tx_modules |
| ** 3. tpm_print_gmac_config |
| ** 4. tpm_print_gmac_func |
| ** 5. tpm_print_ext_port_map |
| ** 6. tpm_print_igmp |
| ** 7. tpm_print_misc |
| ** 8. tpm_print_owners |
| ** 9. |
| ** 10. tpm_print_vlan_etype |
| ** 11. tpm_print_valid_api_sections |
| ** 12. tpm_print_full_api_section |
| ** 13. tpm_print_mod_shadow_range |
| ** 14. tpm_print_pnc_shadow_range |
| ** 15. tpm_print_valid_pnc_ranges |
| ** 16. tpm_print_init_tables |
| ** 17. tpm_mod2_print_tmp_pattern |
| ** 18. tpm_mod2_print_jump_range |
| ** 19. tpm_mod2_print_jump_all |
| ** 20. tpm_mod2_print_main_range |
| ** 21. tpm_mod2_print_main_all |
| ** 22. tpm_mod2_print_config |
| */ |
| typedef struct |
| { |
| uint32_t print_cmd; |
| tpm_api_sections_t api_section; |
| tpm_gmacs_enum_t gmac; |
| uint32_t valid; |
| uint32_t start; |
| uint32_t end; |
| uint32_t dir; |
| uint32_t entry; |
| uint32_t num; |
| } tpm_ioctl_print_t; |
| |
| /* Trace Section |
| ** ============== |
| ** Function list: |
| ** 1. tpm_trace_status_print |
| ** 2. tpm_trace_set |
| ** 3. tpm_trace_module_set |
| */ |
| |
| typedef struct |
| { |
| uint32_t trace_cmd; |
| uint32_t level; |
| uint32_t module; |
| uint32_t flag; |
| } tpm_ioctl_trace_t; |
| |
| /* Admin Section |
| ** ============== |
| ** Function list: |
| ** 1. tpm_create_ownerid |
| ** 2. tpm_request_api_ownership |
| ** 3. tpm_get_api_ownership |
| ** 4. tpm_erase_section |
| ** 5. tpm_get_section_free_size |
| */ |
| |
| typedef struct |
| { |
| uint32_t amdin_cmd; |
| uint32_t owner_id; |
| tpm_api_type_t api_type; |
| tpm_api_ownership_error_t api_ownership_error; |
| tpm_drop_precedence_t drop_pre_mode; |
| int32_t section_size; |
| uint8_t section_dir; |
| uint8_t dummy1; |
| uint16_t dummy2; |
| } tpm_ioctl_admin_t; |
| |
| /* ACL Rule Add Section |
| ** ==================== |
| ** Function list: |
| ** 1. tpm_add_l2_rule |
| ** 2. tpm_add_l3_type_rule |
| ** 3. tpm_add_ipv4_rule |
| ** 4. tpm_add_ipv6_gen_rule |
| ** 5. tpm_add_ipv6_nh_rule |
| ** 6. tpm_add_ipv6_dip_rule |
| ** 7. tpm_add_ipv6_l4_ports_rule |
| ** 8. tpm_mod_entry_set |
| ** 9. tpm_add_ipv6_gen_5t_rule |
| ** 10. tpm_add_ipv6_dip_5t_rule |
| ** 11. tpm_add_ipv6_l4_ports_5t_rule |
| ** 12. tpm_add_ctc_cm_acl_rule |
| */ |
| |
| /* L2 */ |
| typedef struct |
| { |
| tpm_l2_acl_key_t l2_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_mod_t pkt_mod; |
| tpm_rule_action_t rule_action; |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_pkt_mod_bm_t pkt_mod_bm; |
| tpm_unknown_mac_conf_t mac_conf;/*Just for PnC MAC learn*/ |
| } l2_acl_rule_t; |
| |
| /* L3 */ |
| typedef struct |
| { |
| tpm_l3_type_key_t l3_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_rule_action_t rule_action; |
| tpm_parse_flags_t parse_flags_bm; |
| } l3_acl_rule_t; |
| |
| /* IPv4 */ |
| typedef struct |
| { |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_ipv4_acl_key_t ipv4_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_mod_t pkt_mod; |
| tpm_pkt_mod_bm_t pkt_mod_bm; |
| tpm_rule_action_t rule_action; |
| } ipv4_acl_rule_t; |
| |
| /* IPv6 */ |
| typedef struct |
| { |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_ipv6_gen_acl_key_t ipv6_gen_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_mod_t pkt_mod; |
| tpm_pkt_mod_bm_t pkt_mod_bm; |
| tpm_rule_action_t rule_action; |
| } ipv6_gen_acl_rule_t; |
| |
| typedef struct |
| { |
| tpm_nh_iter_t nh_iter; |
| uint32_t nh; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_rule_action_t rule_action; |
| } ipv6_nh_acl_rule_t; |
| |
| typedef struct |
| { |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_ipv6_addr_key_t ipv6_dip_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_mod_t pkt_mod; |
| tpm_pkt_mod_bm_t pkt_mod_bm; |
| tpm_rule_action_t rule_action; |
| } ipv6_dip_acl_rule_t; |
| |
| typedef struct |
| { |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_l4_ports_key_t l4_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_mod_t pkt_mod; |
| tpm_pkt_mod_bm_t pkt_mod_bm; |
| tpm_rule_action_t rule_action; |
| } ipv6_l4_ports_acl_rule_t; |
| |
| /* IPv6 5 tuple */ |
| typedef struct |
| { |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_l4_ports_key_t l4_key; |
| tpm_ipv6_gen_acl_key_t ipv6_gen_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_mod_t pkt_mod; |
| tpm_pkt_mod_bm_t pkt_mod_bm; |
| tpm_rule_action_t rule_action; |
| } ipv6_gen_5t_rule_t; |
| |
| typedef struct |
| { |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_l4_ports_key_t l4_key; |
| tpm_ipv6_gen_acl_key_t ipv6_gen_key; |
| tpm_ipv6_addr_key_t ipv6_dip_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_mod_t pkt_mod; |
| tpm_pkt_mod_bm_t pkt_mod_bm; |
| tpm_rule_action_t rule_action; |
| } ipv6_dip_5t_rule_t; |
| |
| typedef struct |
| { |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_l4_ports_key_t l4_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_mod_t pkt_mod; |
| tpm_pkt_mod_bm_t pkt_mod_bm; |
| tpm_rule_action_t rule_action; |
| } ipv6_l4_ports_5t_rule_t; |
| |
| /* CTC CnM */ |
| typedef struct |
| { |
| uint32_t precedence; |
| uint32_t p_bits; |
| tpm_parse_fields_t l2_parse_rule_bm; |
| tpm_parse_fields_t ipv4_parse_rule_bm; |
| tpm_parse_fields_t ipv6_parse_rule_bm; |
| tpm_l2_acl_key_t l2_key; |
| tpm_ipv4_acl_key_t ipv4_key; |
| tpm_ipv6_acl_key_t ipv6_key; |
| tpm_pkt_frwd_t pkt_frwd; |
| tpm_pkt_action_t pkt_act; |
| } ctc_cm_acl_rule_t; |
| |
| /* DS load balance */ |
| typedef struct |
| { |
| tpm_l2_acl_key_t l2_key; |
| tpm_parse_flags_t parse_flags_bm; |
| tpm_ds_load_balance_tgrt_t tgrt; |
| } ds_load_balance_acl_rule_t; |
| |
| /* Pkt modification */ |
| typedef struct |
| { |
| tpm_trg_port_type_t trg_port; |
| tpm_pkt_mod_bm_t mod_bm; |
| tpm_pkt_mod_int_bm_t int_bm; |
| tpm_pkt_mod_t mod_data; |
| } pkt_mod_rule_t; |
| |
| typedef struct |
| { |
| uint32_t add_acl_cmd; |
| uint32_t owner_id; |
| tpm_src_port_type_t src_port; |
| tpm_dir_t src_dir; |
| uint32_t rule_num; |
| uint32_t rule_idx; |
| tpm_parse_fields_t parse_rule_bm; |
| |
| union |
| { |
| l2_acl_rule_t l2_acl_rule; |
| l3_acl_rule_t l3_acl_rule; |
| ipv4_acl_rule_t ipv4_acl_rule; |
| ipv6_gen_acl_rule_t ipv6_gen_acl_rule; |
| ipv6_nh_acl_rule_t ipv6_nh_acl_rule; |
| ipv6_dip_acl_rule_t ipv6_dip_acl_rule; |
| ipv6_l4_ports_acl_rule_t ipv6_l4_ports_acl_rule; |
| ipv6_gen_5t_rule_t ipv6_gen_5t_rule; |
| ipv6_dip_5t_rule_t ipv6_dip_5t_rule; |
| ipv6_l4_ports_5t_rule_t ipv6_l4_ports_5t_rule; |
| ctc_cm_acl_rule_t ctc_cm_acl_rule; |
| pkt_mod_rule_t mod_rule; |
| ds_load_balance_acl_rule_t ds_load_balance_acl_rule; |
| }; |
| } tpm_ioctl_add_acl_rule_t; |
| |
| /* ACL Rule Delete Section |
| ** ======================= |
| ** Function list: |
| ** 1. tpm_del_l2_rule |
| ** 2. tpm_del_l3_type_rule |
| ** 3. tpm_del_ipv4_rule |
| ** 4. tpm_del_ipv6_gen_rule |
| ** 5. tpm_del_ipv6_nh_rule |
| ** 6. tpm_del_ipv6_dip_rule |
| ** 7. tpm_del_ipv6_l4_ports_rule |
| ** 8. tpm_mod_entry_del |
| ** 9. tpm_mod_mac_inv |
| ** 10. tpm_del_ipv6_gen_5t_rule |
| ** 11. tpm_del_ipv6_dip_5t_rule |
| ** 12. tpm_del_ipv6_l4_ports_5t_rule |
| ** 13. tpm_del_ctc_cm_acl_rule |
| */ |
| |
| typedef struct |
| { |
| uint32_t del_acl_cmd; |
| uint32_t owner_id; |
| tpm_src_port_type_t src_port; |
| tpm_trg_port_type_t trg_port; |
| uint32_t rule_idx; |
| uint32_t precedence; |
| tpm_parse_fields_t parse_rule_bm; |
| tpm_l2_acl_key_t l2_key;/*for MAC learn*/ |
| } tpm_ioctl_del_acl_rule_t; |
| |
| /* Modification Rule Get Section |
| ** ======================= |
| ** Function list: |
| ** 1. tpm_mod_entry_get |
| */ |
| typedef struct |
| { |
| uint32_t get_mod_cmd; |
| tpm_trg_port_type_t trg_port; |
| uint32_t rule_idx; |
| uint16_t pnc_ref; |
| uint16_t valid_num; |
| tpm_mod_rule_t rule[TPM_MAX_MOD_RULE_NUM]; |
| } tpm_ioctl_get_mod_rule_t; |
| |
| /* ACL Ctrl Rule Section |
| ** ===================== |
| ** Function list: |
| ** 1. tpm_get_next_valid_rule |
| */ |
| |
| typedef struct |
| { |
| uint32_t ctrl_acl_cmd; |
| uint32_t owner_id; |
| int32_t current_index; |
| uint32_t next_index; |
| uint32_t rule_idx; |
| tpm_api_type_t rule_type; |
| uint8_t direction; |
| uint8_t dummy1; |
| uint16_t dummy2; |
| tpm_rule_entry_t tpm_rule; |
| uint32_t entry_count; |
| } tpm_ioctl_ctrl_acl_rule_t; |
| |
| /* MC Rule Section |
| ** =============== |
| ** Function list: |
| ** 1. tpm_add_ipv4_mc_stream |
| ** 2. tpm_updt_ipv4_mc_stream |
| ** 3. tpm_del_ipv4_mc_stream |
| ** 4. tpm_add_ipv6_mc_stream |
| ** 5. tpm_updt_ipv6_mc_stream |
| ** 6. tpm_del_ipv6_mc_stream |
| */ |
| |
| /* IPv4 */ |
| typedef struct |
| { |
| uint8_t ipv4_src_add[4]; |
| uint8_t ipv4_dst_add[4]; |
| uint8_t ignore_ipv4_src; |
| uint8_t dummy1; |
| uint16_t dummy2; |
| } ipv4_mc_rule_t; |
| |
| /* IPv6 */ |
| typedef struct |
| { |
| uint32_t vid; |
| uint8_t ipv6_src_add[16]; |
| uint8_t ipv6_dst_add[16]; |
| uint8_t ignore_ipv6_src; |
| uint8_t dummy1; |
| uint16_t dummy2; |
| } ipv6_mc_rule_t; |
| |
| typedef struct |
| { |
| uint32_t mc_cmd; |
| uint32_t owner_id; |
| uint32_t stream_num; |
| tpm_mc_igmp_mode_t igmp_mode; |
| uint8_t mc_stream_pppoe; |
| uint16_t vid; |
| uint16_t dest_queue; |
| tpm_trg_port_type_t dest_port_bm; |
| |
| union |
| { |
| ipv4_mc_rule_t ipv4_mc; |
| ipv6_mc_rule_t ipv6_mc; |
| }; |
| } tpm_ioctl_mc_rule_t; |
| |
| /* Mng Rule Section |
| ** ================ |
| ** Function list: |
| ** 1. tpm_omci_add_channel |
| ** 2. tpm_omci_del_channel |
| ** 3. tpm_omci_get_channel |
| ** 4. tpm_oam_epon_add_channel |
| ** 5. tpm_oam_epon_del_channel |
| ** 6. tpm_oam_epon_get_channel |
| */ |
| |
| typedef struct |
| { |
| uint32_t owner_id; |
| uint32_t is_valid; |
| uint32_t cpu_rx_queue; |
| tpm_trg_port_type_t tcont_num; |
| uint32_t cpu_tx_queue; |
| tpm_gem_port_key_t gem_port; |
| uint16_t dummy; |
| } tpm_ioctl_omci_ch_t; |
| |
| typedef struct |
| { |
| uint32_t owner_id; |
| uint32_t is_valid; |
| uint32_t cpu_rx_queue; |
| tpm_trg_port_type_t llid_num; |
| } tpm_ioctl_oam_ch_t; |
| |
| typedef struct |
| { |
| uint32_t mng_cmd; |
| tpm_ioctl_omci_ch_t tpm_ioctl_omci_ch; |
| tpm_ioctl_oam_ch_t tpm_ioctl_oam_ch; |
| uint32_t loopback_detect_ety; |
| } tpm_ioctl_mng_ch_t; |
| |
| /* Switch Section |
| ** ============== |
| ** Function list: |
| ** 1. tpm_sw_add_static_mac |
| ** 2. tpm_sw_del_static_mac |
| ** 3. tpm_sw_set_port_max_macs |
| ** 4. tpm_sw_set_port_flooding |
| ** |
| ** 5. tpm_sw_set_port_tagged |
| ** 6. tpm_sw_set_port_untagged |
| ** 7. tpm_sw_port_add_vid |
| ** 8. tpm_sw_port_del_vid |
| ** 9. tpm_sw_port_set_vid_filter |
| ** |
| ** 10.tpm_sw_set_uni_sched |
| ** 11.tpm_sw_set_uni_q_weight |
| ** 12.tpm_sw_set_uni_ingr_police_rate |
| ** 13.tpm_sw_set_uni_tc_ingr_police_rate |
| ** 14.tpm_sw_set_uni_egr_rate_limit |
| */ |
| |
| /* Switch MAC security */ |
| typedef struct |
| { |
| uint32_t sw_security_cmd; |
| uint32_t owner_id; |
| tpm_src_port_type_t port; |
| uint8_t static_mac[6]; |
| uint8_t mac_per_port; |
| uint8_t allow_flood; |
| bool enable_mac_learn; |
| tpm_flood_type_t flood_mode; |
| uint32_t mac_age_time; |
| tpm_sw_mirror_t port_mirror; |
| tpm_mru_type_t mtu_type; |
| uint32_t mtu_size; |
| uint32_t port_vector; |
| tpm_sw_trunk_t trunk; |
| } tpm_ioctl_sw_mac_security_t; |
| |
| /* Switch Vlan filtering */ |
| typedef struct |
| { |
| uint32_t sw_vlan_cmd; |
| uint32_t owner_id; |
| tpm_src_port_type_t port; |
| uint16_t vid; |
| uint8_t pri; |
| uint8_t vid_filter; |
| uint8_t allow_tagged; |
| uint8_t allow_untagged; |
| uint8_t egress_mode; |
| uint8_t dummy; |
| uint16_t min_vid; |
| uint16_t max_vid; |
| } tpm_ioctl_sw_vlan_filter_t; |
| |
| /* Switch Traffic management */ |
| typedef struct |
| { |
| uint32_t sw_tm_cmd; |
| uint32_t owner_id; |
| tpm_src_port_type_t uni_port; |
| tpm_sw_sched_type_t sw_sched_mode; |
| uint8_t queue_id; |
| uint8_t weight; |
| uint16_t dummy; |
| uint32_t limit_mode; |
| uint32_t cir; |
| uint32_t cbs; |
| uint32_t ebs; |
| uint32_t tc; |
| uint32_t rate_limit_val; |
| } tpm_ioctl_sw_tm_t; |
| |
| /* Switch PHY port management */ |
| typedef struct |
| { |
| uint32_t sw_phy_cmd; |
| uint32_t owner_id; |
| tpm_src_port_type_t port; |
| tpm_phy_speed_t port_speed; |
| tpm_phy_loopback_mode_t port_loopback_mode; |
| tpm_src_port_type_t extern_port_id; |
| uint32_t switch_port_id; |
| tpm_autoneg_mode_t port_autoneg_mode; |
| bool phy_port_state; |
| bool port_autoneg_state; |
| bool port_link_status; |
| bool port_pause_state; |
| bool port_duplex_enable; |
| bool port_loopback_state; |
| uint16_t dummy; |
| } tpm_ioctl_sw_phy_t; |
| |
| /* Packet Processor Section |
| ** ======================== |
| ** Function list: |
| ** 1. tpm_tm_set_wan_egr_queue_sched |
| ** 2. tpm_tm_set_wan_sched_egr_rate_lim |
| ** 3. tpm_tm_set_wan_queue_egr_rate_lim |
| ** 4. tpm_tm_set_wan_ingr_rate_lim |
| ** 5. tpm_tm_set_wan_q_ingr_rate_lim |
| */ |
| |
| /* Packet Processor Traffic management */ |
| typedef struct |
| { |
| uint32_t pp_tm_cmd; |
| uint32_t owner_id; |
| tpm_trg_port_type_t sched_ent; |
| tpm_trg_port_type_t uni_port; |
| tpm_pp_sched_type_t pp_sched_mode; |
| uint32_t queue_id; |
| uint32_t wrr_weight; |
| uint32_t rate_limit_val; |
| uint32_t bucket_size; |
| } tpm_ioctl_tm_tm_t; |
| |
| /* IGMP Section |
| ** ============= |
| ** Function list: |
| ** 1. tpm_proc_enable_igmp |
| ** 2. tpm_proc_edisable_igmp |
| */ |
| |
| /* Packet Processor Traffic management */ |
| typedef struct |
| { |
| uint32_t igmp_cmd; |
| uint32_t owner_id; |
| tpm_src_port_type_t src_port; |
| tpm_igmp_frwd_mode_t frwd_mode; |
| uint32_t cpu_queue; |
| uint8_t sa_mac[6]; |
| } tpm_ioctl_igmp_t; |
| |
| |
| /* MIB Reset Section |
| ** ============= |
| ** Function list: |
| ** 1. tpm_proc_enable_igmp |
| */ |
| |
| /* MIB reset */ |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_reset_level_enum_t reset_level; |
| } tpm_ioctl_mib_reset_t; |
| |
| /* set active wan port */ |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_gmacs_enum_t active_wan; |
| } tpm_ioctl_set_active_wan_t; |
| |
| /* set gmac loopback */ |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_gmacs_enum_t gmac; |
| uint8_t enable; |
| } tpm_ioctl_set_gmac_loopback_t; |
| |
| /* hot swap profile */ |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_eth_complex_profile_t profile_id; |
| } tpm_ioctl_hot_swap_profile_t; |
| |
| /* set port hwf admin */ |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_gmacs_enum_t port; |
| uint8_t txp; |
| uint8_t enable; |
| } tpm_ioctl_set_port_hwf_admin_t; |
| |
| /* ALARM Section */ |
| typedef struct |
| { |
| uint32_t alarm_cmd; |
| uint32_t owner_id; |
| uint32_t alarm_type; |
| uint8_t port_bitmap[2][MAX_ETH_PORT_ALARM]; |
| } tpm_ioctl_alarm_t; |
| |
| |
| /* Management structure for Ethernet counters 1 */ |
| typedef struct |
| { |
| tpm_src_port_type_t port; |
| uint32_t owner_id; |
| tpm_swport_pm_1_t tpm_swport_pm_1; |
| |
| } tpm_ioctl_swport_pm_1_t; |
| |
| |
| /* Management structure for Ethernet counters 3 */ |
| typedef struct |
| { |
| tpm_src_port_type_t port; |
| uint32_t owner_id; |
| tpm_swport_pm_3_all_t tpm_swport_pm_3; |
| |
| } tpm_ioctl_swport_pm_3_t; |
| |
| |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_trg_port_type_t tgt_port; |
| uint8_t tgt_queue; |
| uint8_t dummy; |
| uint16_t gem_port; |
| uint8_t buf[MAX_FRAME_SIZE]; |
| uint32_t len; |
| } tpm_ioctl_tx_igmp_t; |
| |
| typedef struct |
| { |
| uint32_t owner_id; |
| uint8_t dummy[2]; |
| uint16_t src_llid; |
| tpm_src_port_type_t src_port; |
| uint8_t buf[MAX_FRAME_SIZE]; |
| uint32_t len; |
| } tpm_ioctl_rx_igmp_t; |
| |
| |
| typedef struct |
| { |
| uint32_t cpu_lpbk_cmd; |
| uint32_t owner_id; |
| tpm_pkt_frwd_t pkt_frwd; |
| uint32_t mod_idx; |
| } tpm_ioctl_cpu_lpbk_t; |
| |
| typedef struct |
| { |
| uint32_t owner_id; |
| } tpm_ioctl_flush_vtu_t; |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_flush_atu_type_t flush_type; |
| uint16_t db_num; |
| } tpm_ioctl_flush_atu_t; |
| |
| typedef struct |
| { |
| uint32_t age_count_cmd; |
| uint32_t owner_id; |
| tpm_api_type_t api_type; |
| uint32_t lu_thresh_pkts; |
| uint32_t rule_idx; |
| uint32_t lu_rule_mask; |
| uint32_t hit_count; |
| uint16_t lu_num; |
| uint16_t valid_num; |
| uint16_t unrelated_num; |
| uint8_t lu_reset; |
| uint8_t hit_reset; |
| tpm_api_entry_count_t count_array[TPM_MAX_LU_ENTRY_NUM]; |
| } tpm_ioctl_age_count_t; |
| |
| typedef struct |
| { |
| uint32_t age_count_cmd; |
| uint32_t owner_id; |
| tpm_api_type_t api_type; |
| uint32_t high_thresh_pkts; |
| uint16_t valid_counters; |
| uint8_t counter_reset; |
| uint8_t dummy; |
| tpm_api_entry_count_t count_array[TPM_MAX_PNC_COUNTER_NUM]; |
| } tpm_ioctl_pnc_hit_cnt_t; |
| |
| typedef struct |
| { |
| uint32_t mc_vid_cmd; |
| uint32_t owner_id; |
| uint32_t mc_vid; |
| tpm_mc_vid_port_vid_set_t port_vid_set; |
| } tpm_ioctl_mc_vid_t; |
| |
| typedef struct |
| { |
| uint32_t mtu_setting_cmd; |
| uint32_t mtu; |
| uint32_t pppoe_mtu; |
| tpm_mtu_ethertype_t ethertype; |
| uint32_t direction; |
| tpm_init_mtu_setting_enable_t enable; |
| } tpm_ioctl_mtu_t; |
| |
| /* TPM check */ |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_self_check_level_enum_t check_level; |
| } tpm_ioctl_tpm_check_t; |
| |
| /* ipv6 parse window */ |
| typedef struct |
| { |
| uint32_t owner_id; |
| tpm_ctc_cm_ipv6_parse_win_t ipv6_parse_window; |
| } tpm_ioctl_ipv6_parse_window_t; |
| |
| /* this union aggregates all ioctl commands supported by SFS_TO_IOCTL mode */ |
| typedef union tpm_cmd_data |
| { |
| tpm_ioctl_add_acl_rule_t tpm_add_acl_rule; |
| tpm_ioctl_del_acl_rule_t tpm_del_acl_rule; |
| tpm_ioctl_ctrl_acl_rule_t tpm_ctrl_acl_rule; |
| tpm_ioctl_mc_rule_t tpm_mc_rule; |
| tpm_ioctl_igmp_t tpm_igmp; |
| tpm_ioctl_cpu_lpbk_t tpm_ioctl_cpu_lpbk; |
| tpm_ioctl_mib_reset_t tpm_mib_reset_param; |
| tpm_ioctl_age_count_t tpm_ioctl_age_count; |
| tpm_ioctl_pnc_hit_cnt_t tpm_ioctl_pnc_hit_cnt; |
| tpm_ioctl_mtu_t tpm_ioctl_mtu_set; |
| tpm_ioctl_sw_mac_security_t tpm_ioctl_sw_mac_set; |
| tpm_ioctl_tm_tm_t tpm_ioctl_tm_tm; |
| tpm_ioctl_mng_ch_t tpm_mng_channel; |
| tpm_ioctl_get_mod_rule_t tpm_ioctl_get_mod; |
| tpm_ioctl_tpm_check_t tpm_check_param; |
| tpm_ioctl_flush_vtu_t tpm_ioctl_flush_vtu; |
| tpm_ioctl_flush_atu_t tpm_ioctl_flush_atu; |
| tpm_ioctl_ipv6_parse_window_t tpm_ipv6_parse_window; |
| tpm_ioctl_set_active_wan_t tpm_set_active_wan_param; |
| tpm_ioctl_hot_swap_profile_t tpm_hot_swap_profile_param; |
| tpm_ioctl_set_port_hwf_admin_t tpm_set_port_hwf_admin_param; |
| } tpm_cmd_data_t; |
| |
| /* this structure is used for passing sysfs request from kernel to userspace |
| to be ioctl (SFS_TO_IOCTL mode) */ |
| typedef struct |
| { |
| unsigned int cmd; /* the ioctl command */ |
| tpm_cmd_data_t tpm_cmd_data; /* the ioctl additional data */ |
| } tpm_ioctl_mng_t; |
| |
| |
| /* Global variables |
| ------------------------------------------------------------------------------*/ |
| |
| /* Global functions |
| ------------------------------------------------------------------------------*/ |
| |
| /* Global variables |
| ------------------------------------------------------------------------------*/ |
| |
| /* Global functions |
| ------------------------------------------------------------------------------*/ |
| int32_t tpm_module_mng_if_create(void); |
| int32_t tpm_module_mng_if_release(void); |
| |
| /* Macros |
| ------------------------------------------------------------------------------*/ |
| |
| #endif /* _TPM_MNG_IF_H_ */ |