/* * 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: 76306 $ * $Date: 2017-03-08 15:13:58 +0800 (週三, 08 三月 2017) $ * * Purpose : RTL8367/RTL8367C switch high-level API * * Feature : The file includes the following modules and sub-modules * (1) OAM (802.3ah) configuration * */ #ifndef __RTK_OAM_H__ #define __RTK_OAM_H__ /* * Symbol Definition */ /* * Data Declaration */ /* * Macro Declaration */ typedef enum rtk_oam_parser_act_e { OAM_PARSER_ACTION_FORWARD = 0, OAM_PARSER_ACTION_LOOPBACK, OAM_PARSER_ACTION_DISCARD, OAM_PARSER_ACTION_END, } rtk_oam_parser_act_t; typedef enum rtk_oam_multiplexer_act_e { OAM_MULTIPLEXER_ACTION_FORWARD = 0, OAM_MULTIPLEXER_ACTION_DISCARD, OAM_MULTIPLEXER_ACTION_CPUONLY, OAM_MULTIPLEXER_ACTION_END, } rtk_oam_multiplexer_act_t; /* * Function Declaration */ /* Function Name: * rtk_oam_init * Description: * Initialize oam module. * Input: * None * Output: * None * Return: * RT_ERR_OK * RT_ERR_FAILED * Note: * Must initialize oam module before calling any oam APIs. */ extern rtk_api_ret_t rtk_oam_init(void); /* Function Name: * rtk_oam_state_set * Description: * This API set OAM state. * Input: * enabled -OAMstate * Output: * None. * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_SMI - SMI access error * RT_ERR_INPUT - Error parameter * Note: * This API set OAM state. */ extern rtk_api_ret_t rtk_oam_state_set(rtk_enable_t enabled); /* Function Name: * rtk_oam_state_get * Description: * This API get OAM state. * Input: * None. * Output: * pEnabled - H/W IGMP state * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_SMI - SMI access error * RT_ERR_INPUT - Error parameter * Note: * This API set current OAM state. */ extern rtk_api_ret_t rtk_oam_state_get(rtk_enable_t *pEnabled); /* Module Name : OAM */ /* Function Name: * rtk_oam_parserAction_set * Description: * Set OAM parser action * Input: * port - port id * action - parser action * Output: * None * Return: * RT_ERR_OK * RT_ERR_FAILED * RT_ERR_PORT_ID - invalid port id * Note: * None */ extern rtk_api_ret_t rtk_oam_parserAction_set(rtk_port_t port, rtk_oam_parser_act_t action); /* Function Name: * rtk_oam_parserAction_set * Description: * Get OAM parser action * Input: * port - port id * Output: * pAction - parser action * Return: * RT_ERR_OK * RT_ERR_FAILED * RT_ERR_PORT_ID - invalid port id * Note: * None */ extern rtk_api_ret_t rtk_oam_parserAction_get(rtk_port_t port, rtk_oam_parser_act_t *pAction); /* Function Name: * rtk_oam_multiplexerAction_set * Description: * Set OAM multiplexer action * Input: * port - port id * action - parser action * Output: * None * Return: * RT_ERR_OK * RT_ERR_FAILED * RT_ERR_PORT_ID - invalid port id * Note: * None */ extern rtk_api_ret_t rtk_oam_multiplexerAction_set(rtk_port_t port, rtk_oam_multiplexer_act_t action); /* Function Name: * rtk_oam_multiplexerAction_set * Description: * Get OAM multiplexer action * Input: * port - port id * Output: * pAction - parser action * Return: * RT_ERR_OK * RT_ERR_FAILED * RT_ERR_PORT_ID - invalid port id * Note: * None */ extern rtk_api_ret_t rtk_oam_multiplexerAction_get(rtk_port_t port, rtk_oam_multiplexer_act_t *pAction); #endif /* __RTK_OAM_H__ */