diff options
Diffstat (limited to 'target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/include/acl.h')
-rw-r--r-- | target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/include/acl.h | 990 |
1 files changed, 0 insertions, 990 deletions
diff --git a/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/include/acl.h b/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/include/acl.h deleted file mode 100644 index 6308da8d42..0000000000 --- a/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/include/acl.h +++ /dev/null @@ -1,990 +0,0 @@ -/* - * 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 - * - * Purpose : RTL8367/RTL8367C switch high-level API - * - * Feature : The file includes ACL module high-layer API defination - * - */ - -#ifndef __RTK_API_ACL_H__ -#define __RTK_API_ACL_H__ - -/* - * Data Type Declaration - */ -#define RTK_FILTER_RAW_FIELD_NUMBER 8 - -#define ACL_DEFAULT_ABILITY 0 -#define ACL_DEFAULT_UNMATCH_PERMIT 1 - -#define ACL_RULE_FREE 0 -#define ACL_RULE_INAVAILABLE 1 -#define ACL_RULE_CARETAG_MASK 0x1F -#define FILTER_POLICING_MAX 4 -#define FILTER_LOGGING_MAX 8 -#define FILTER_PATTERN_MAX 4 - -#define FILTER_ENACT_CVLAN_MASK 0x01 -#define FILTER_ENACT_SVLAN_MASK 0x02 -#define FILTER_ENACT_PRIORITY_MASK 0x04 -#define FILTER_ENACT_POLICING_MASK 0x08 -#define FILTER_ENACT_FWD_MASK 0x10 -#define FILTER_ENACT_INTGPIO_MASK 0x20 -#define FILTER_ENACT_INIT_MASK 0x3F - -typedef enum rtk_filter_act_cactext_e -{ - FILTER_ENACT_CACTEXT_VLANONLY=0, - FILTER_ENACT_CACTEXT_BOTHVLANTAG, - FILTER_ENACT_CACTEXT_TAGONLY, - FILTER_ENACT_CACTEXT_END, - - -}rtk_filter_act_cactext_t; - -typedef enum rtk_filter_act_ctagfmt_e -{ - FILTER_CTAGFMT_UNTAG=0, - FILTER_CTAGFMT_TAG, - FILTER_CTAGFMT_KEEP, - FILTER_CTAGFMT_KEEP1PRMK, - - -}rtk_filter_act_ctag_t; - - - - - -#define RTK_MAX_NUM_OF_FILTER_TYPE 5 -#define RTK_MAX_NUM_OF_FILTER_FIELD 8 - -#define RTK_DOT_1AS_TIMESTAMP_UNIT_IN_WORD_LENGTH 3UL -#define RTK_IPV6_ADDR_WORD_LENGTH 4UL - -#define FILTER_ENACT_CVLAN_TYPE(type) (type - FILTER_ENACT_CVLAN_INGRESS) -#define FILTER_ENACT_SVLAN_TYPE(type) (type - FILTER_ENACT_SVLAN_INGRESS) -#define FILTER_ENACT_FWD_TYPE(type) (type - FILTER_ENACT_ADD_DSTPORT) -#define FILTER_ENACT_PRI_TYPE(type) (type - FILTER_ENACT_PRIORITY) - -#define RTK_FILTER_FIELD_USED_MAX 8 -#define RTK_FILTER_FIELD_INDEX(template, index) ((template << 4) + index) - - -typedef enum rtk_filter_act_enable_e -{ - /* CVLAN */ - FILTER_ENACT_CVLAN_INGRESS = 0, - FILTER_ENACT_CVLAN_EGRESS, - FILTER_ENACT_CVLAN_SVID, - FILTER_ENACT_POLICING_1, - - /* SVLAN */ - FILTER_ENACT_SVLAN_INGRESS, - FILTER_ENACT_SVLAN_EGRESS, - FILTER_ENACT_SVLAN_CVID, - FILTER_ENACT_POLICING_2, - - /* Policing and Logging */ - FILTER_ENACT_POLICING_0, - - /* Forward */ - FILTER_ENACT_COPY_CPU, - FILTER_ENACT_DROP, - FILTER_ENACT_ADD_DSTPORT, - FILTER_ENACT_REDIRECT, - FILTER_ENACT_MIRROR, - FILTER_ENACT_TRAP_CPU, - FILTER_ENACT_ISOLATION, - - /* QoS */ - FILTER_ENACT_PRIORITY, - FILTER_ENACT_DSCP_REMARK, - FILTER_ENACT_1P_REMARK, - FILTER_ENACT_POLICING_3, - - /* Interrutp and GPO */ - FILTER_ENACT_INTERRUPT, - FILTER_ENACT_GPO, - - /*VLAN tag*/ - FILTER_ENACT_EGRESSCTAG_UNTAG, - FILTER_ENACT_EGRESSCTAG_TAG, - FILTER_ENACT_EGRESSCTAG_KEEP, - FILTER_ENACT_EGRESSCTAG_KEEPAND1PRMK, - - FILTER_ENACT_END, -} rtk_filter_act_enable_t; - - -typedef struct -{ - rtk_filter_act_enable_t actEnable[FILTER_ENACT_END]; - - /* CVLAN acton */ - rtk_uint32 filterCvlanVid; - rtk_uint32 filterCvlanIdx; - /* SVLAN action */ - rtk_uint32 filterSvlanVid; - rtk_uint32 filterSvlanIdx; - - /* Policing action */ - rtk_uint32 filterPolicingIdx[FILTER_POLICING_MAX]; - - /* Forwarding action */ - rtk_portmask_t filterPortmask; - - /* QOS action */ - rtk_uint32 filterPriority; - - /*GPO*/ - rtk_uint32 filterPin; - -} rtk_filter_action_t; - -typedef struct rtk_filter_flag_s -{ - rtk_uint32 value; - rtk_uint32 mask; -} rtk_filter_flag_t; - -typedef enum rtk_filter_care_tag_index_e -{ - CARE_TAG_CTAG = 0, - CARE_TAG_STAG, - CARE_TAG_PPPOE, - CARE_TAG_IPV4, - CARE_TAG_IPV6, - CARE_TAG_TCP, - CARE_TAG_UDP, - CARE_TAG_ARP, - CARE_TAG_RSV1, - CARE_TAG_RSV2, - CARE_TAG_ICMP, - CARE_TAG_IGMP, - CARE_TAG_LLC, - CARE_TAG_RSV3, - CARE_TAG_HTTP, - CARE_TAG_RSV4, - CARE_TAG_RSV5, - CARE_TAG_DHCP, - CARE_TAG_DHCPV6, - CARE_TAG_SNMP, - CARE_TAG_OAM, - CARE_TAG_END, -} rtk_filter_care_tag_index_t; - -typedef struct rtk_filter_care_tag_s -{ - rtk_filter_flag_t tagType[CARE_TAG_END]; -} rtk_filter_care_tag_t; - -typedef struct rtk_filter_field rtk_filter_field_t; - -typedef struct -{ - rtk_uint32 value[RTK_DOT_1AS_TIMESTAMP_UNIT_IN_WORD_LENGTH]; -} rtk_filter_dot1as_timestamp_t; - -typedef enum rtk_filter_field_data_type_e -{ - FILTER_FIELD_DATA_MASK = 0, - FILTER_FIELD_DATA_RANGE, - FILTER_FIELD_DATA_END , -} rtk_filter_field_data_type_t; - -typedef struct rtk_filter_ip_s -{ - rtk_uint32 dataType; - rtk_uint32 rangeStart; - rtk_uint32 rangeEnd; - rtk_uint32 value; - rtk_uint32 mask; -} rtk_filter_ip_t; - -typedef struct rtk_filter_mac_s -{ - rtk_uint32 dataType; - rtk_mac_t value; - rtk_mac_t mask; - rtk_mac_t rangeStart; - rtk_mac_t rangeEnd; -} rtk_filter_mac_t; - -typedef rtk_uint32 rtk_filter_op_t; - -typedef struct rtk_filter_value_s -{ - rtk_uint32 dataType; - rtk_uint32 value; - rtk_uint32 mask; - rtk_uint32 rangeStart; - rtk_uint32 rangeEnd; - -} rtk_filter_value_t; - -typedef struct rtk_filter_activeport_s -{ - rtk_portmask_t value; - rtk_portmask_t mask; - -} rtk_filter_activeport_t; - - - -typedef struct rtk_filter_tag_s -{ - rtk_filter_value_t pri; - rtk_filter_flag_t cfi; - rtk_filter_value_t vid; -} rtk_filter_tag_t; - -typedef struct rtk_filter_ipFlag_s -{ - rtk_filter_flag_t xf; - rtk_filter_flag_t mf; - rtk_filter_flag_t df; -} rtk_filter_ipFlag_t; - -typedef struct -{ - rtk_uint32 addr[RTK_IPV6_ADDR_WORD_LENGTH]; -} rtk_filter_ip6_addr_t; - -typedef struct -{ - rtk_uint32 dataType; - rtk_filter_ip6_addr_t value; - rtk_filter_ip6_addr_t mask; - rtk_filter_ip6_addr_t rangeStart; - rtk_filter_ip6_addr_t rangeEnd; -} rtk_filter_ip6_t; - -typedef rtk_uint32 rtk_filter_number_t; - -typedef struct rtk_filter_pattern_s -{ - rtk_uint32 value[FILTER_PATTERN_MAX]; - rtk_uint32 mask[FILTER_PATTERN_MAX]; -} rtk_filter_pattern_t; - -typedef struct rtk_filter_tcpFlag_s -{ - rtk_filter_flag_t urg; - rtk_filter_flag_t ack; - rtk_filter_flag_t psh; - rtk_filter_flag_t rst; - rtk_filter_flag_t syn; - rtk_filter_flag_t fin; - rtk_filter_flag_t ns; - rtk_filter_flag_t cwr; - rtk_filter_flag_t ece; -} rtk_filter_tcpFlag_t; - -typedef rtk_uint32 rtk_filter_field_raw_t; - -typedef enum rtk_filter_field_temple_input_e -{ - FILTER_FIELD_TEMPLE_INPUT_TYPE = 0, - FILTER_FIELD_TEMPLE_INPUT_INDEX, - FILTER_FIELD_TEMPLE_INPUT_MAX , -} rtk_filter_field_temple_input_t; - -struct rtk_filter_field -{ - rtk_uint32 fieldType; - - union - { - /* L2 struct */ - rtk_filter_mac_t dmac; - rtk_filter_mac_t smac; - rtk_filter_value_t etherType; - rtk_filter_tag_t ctag; - rtk_filter_tag_t relayCtag; - rtk_filter_tag_t stag; - rtk_filter_tag_t l2tag; - rtk_filter_dot1as_timestamp_t dot1asTimeStamp; - rtk_filter_mac_t mac; - - /* L3 struct */ - rtk_filter_ip_t sip; - rtk_filter_ip_t dip; - rtk_filter_ip_t ip; - rtk_filter_value_t protocol; - rtk_filter_value_t ipTos; - rtk_filter_ipFlag_t ipFlag; - rtk_filter_value_t ipOffset; - rtk_filter_ip6_t sipv6; - rtk_filter_ip6_t dipv6; - rtk_filter_ip6_t ipv6; - rtk_filter_value_t ipv6TrafficClass; - rtk_filter_value_t ipv6NextHeader; - rtk_filter_value_t flowLabel; - - /* L4 struct */ - rtk_filter_value_t tcpSrcPort; - rtk_filter_value_t tcpDstPort; - rtk_filter_tcpFlag_t tcpFlag; - rtk_filter_value_t tcpSeqNumber; - rtk_filter_value_t tcpAckNumber; - rtk_filter_value_t udpSrcPort; - rtk_filter_value_t udpDstPort; - rtk_filter_value_t icmpCode; - rtk_filter_value_t icmpType; - rtk_filter_value_t igmpType; - - /* pattern match */ - rtk_filter_pattern_t pattern; - - rtk_filter_value_t inData; - - } filter_pattern_union; - - rtk_uint32 fieldTemplateNo; - rtk_uint32 fieldTemplateIdx[RTK_FILTER_FIELD_USED_MAX]; - - struct rtk_filter_field *next; -}; - -typedef enum rtk_filter_field_type_e -{ - FILTER_FIELD_DMAC = 0, - FILTER_FIELD_SMAC, - FILTER_FIELD_ETHERTYPE, - FILTER_FIELD_CTAG, - FILTER_FIELD_STAG, - - FILTER_FIELD_IPV4_SIP, - FILTER_FIELD_IPV4_DIP, - FILTER_FIELD_IPV4_TOS, - FILTER_FIELD_IPV4_PROTOCOL, - FILTER_FIELD_IPV4_FLAG, - FILTER_FIELD_IPV4_OFFSET, - FILTER_FIELD_IPV6_SIPV6, - FILTER_FIELD_IPV6_DIPV6, - FILTER_FIELD_IPV6_TRAFFIC_CLASS, - FILTER_FIELD_IPV6_NEXT_HEADER, - - FILTER_FIELD_TCP_SPORT, - FILTER_FIELD_TCP_DPORT, - FILTER_FIELD_TCP_FLAG, - FILTER_FIELD_UDP_SPORT, - FILTER_FIELD_UDP_DPORT, - FILTER_FIELD_ICMP_CODE, - FILTER_FIELD_ICMP_TYPE, - FILTER_FIELD_IGMP_TYPE, - - FILTER_FIELD_VID_RANGE, - FILTER_FIELD_IP_RANGE, - FILTER_FIELD_PORT_RANGE, - - FILTER_FIELD_USER_DEFINED00, - FILTER_FIELD_USER_DEFINED01, - FILTER_FIELD_USER_DEFINED02, - FILTER_FIELD_USER_DEFINED03, - FILTER_FIELD_USER_DEFINED04, - FILTER_FIELD_USER_DEFINED05, - FILTER_FIELD_USER_DEFINED06, - FILTER_FIELD_USER_DEFINED07, - FILTER_FIELD_USER_DEFINED08, - FILTER_FIELD_USER_DEFINED09, - FILTER_FIELD_USER_DEFINED10, - FILTER_FIELD_USER_DEFINED11, - FILTER_FIELD_USER_DEFINED12, - FILTER_FIELD_USER_DEFINED13, - FILTER_FIELD_USER_DEFINED14, - FILTER_FIELD_USER_DEFINED15, - - FILTER_FIELD_PATTERN_MATCH, - - FILTER_FIELD_END, -} rtk_filter_field_type_t; - - -typedef enum rtk_filter_field_type_raw_e -{ - FILTER_FIELD_RAW_UNUSED = 0, - FILTER_FIELD_RAW_DMAC_15_0, - FILTER_FIELD_RAW_DMAC_31_16, - FILTER_FIELD_RAW_DMAC_47_32, - FILTER_FIELD_RAW_SMAC_15_0, - FILTER_FIELD_RAW_SMAC_31_16, - FILTER_FIELD_RAW_SMAC_47_32, - FILTER_FIELD_RAW_ETHERTYPE, - FILTER_FIELD_RAW_STAG, - FILTER_FIELD_RAW_CTAG, - - FILTER_FIELD_RAW_IPV4_SIP_15_0 = 0x10, - FILTER_FIELD_RAW_IPV4_SIP_31_16, - FILTER_FIELD_RAW_IPV4_DIP_15_0, - FILTER_FIELD_RAW_IPV4_DIP_31_16, - - - FILTER_FIELD_RAW_IPV6_SIP_15_0 = 0x20, - FILTER_FIELD_RAW_IPV6_SIP_31_16, - FILTER_FIELD_RAW_IPV6_DIP_15_0 = 0x28, - FILTER_FIELD_RAW_IPV6_DIP_31_16, - - FILTER_FIELD_RAW_VIDRANGE = 0x30, - FILTER_FIELD_RAW_IPRANGE, - FILTER_FIELD_RAW_PORTRANGE, - FILTER_FIELD_RAW_FIELD_VALID, - - FILTER_FIELD_RAW_FIELD_SELECT00 = 0x40, - FILTER_FIELD_RAW_FIELD_SELECT01, - FILTER_FIELD_RAW_FIELD_SELECT02, - FILTER_FIELD_RAW_FIELD_SELECT03, - FILTER_FIELD_RAW_FIELD_SELECT04, - FILTER_FIELD_RAW_FIELD_SELECT05, - FILTER_FIELD_RAW_FIELD_SELECT06, - FILTER_FIELD_RAW_FIELD_SELECT07, - FILTER_FIELD_RAW_FIELD_SELECT08, - FILTER_FIELD_RAW_FIELD_SELECT09, - FILTER_FIELD_RAW_FIELD_SELECT10, - FILTER_FIELD_RAW_FIELD_SELECT11, - FILTER_FIELD_RAW_FIELD_SELECT12, - FILTER_FIELD_RAW_FIELD_SELECT13, - FILTER_FIELD_RAW_FIELD_SELECT14, - FILTER_FIELD_RAW_FIELD_SELECT15, - - FILTER_FIELD_RAW_END, -} rtk_filter_field_type_raw_t; - -typedef enum rtk_filter_flag_care_type_e -{ - FILTER_FLAG_CARE_DONT_CARE = 0, - FILTER_FLAG_CARE_1, - FILTER_FLAG_CARE_0, - FILTER_FLAG_END -} rtk_filter_flag_care_type_t; - -typedef rtk_uint32 rtk_filter_id_t; /* filter id type */ - -typedef enum rtk_filter_invert_e -{ - FILTER_INVERT_DISABLE = 0, - FILTER_INVERT_ENABLE, - FILTER_INVERT_END, -} rtk_filter_invert_t; - -typedef rtk_uint32 rtk_filter_state_t; - -typedef rtk_uint32 rtk_filter_unmatch_action_t; - -typedef enum rtk_filter_unmatch_action_e -{ - FILTER_UNMATCH_DROP = 0, - FILTER_UNMATCH_PERMIT, - FILTER_UNMATCH_END, -} rtk_filter_unmatch_action_type_t; - -typedef struct -{ - rtk_filter_field_t *fieldHead; - rtk_filter_care_tag_t careTag; - rtk_filter_activeport_t activeport; - - rtk_filter_invert_t invert; -} rtk_filter_cfg_t; - -typedef struct -{ - rtk_filter_field_raw_t dataFieldRaw[RTK_FILTER_RAW_FIELD_NUMBER]; - rtk_filter_field_raw_t careFieldRaw[RTK_FILTER_RAW_FIELD_NUMBER]; - rtk_filter_field_type_raw_t fieldRawType[RTK_FILTER_RAW_FIELD_NUMBER]; - rtk_filter_care_tag_t careTag; - rtk_filter_activeport_t activeport; - - rtk_filter_invert_t invert; - rtk_enable_t valid; -} rtk_filter_cfg_raw_t; - -typedef struct -{ - rtk_uint32 index; - rtk_filter_field_type_raw_t fieldType[RTK_FILTER_RAW_FIELD_NUMBER]; -} rtk_filter_template_t; - -typedef enum rtk_field_sel_e -{ - FORMAT_DEFAULT = 0, - FORMAT_RAW, - FORMAT_LLC, - FORMAT_IPV4, - FORMAT_ARP, - FORMAT_IPV6, - FORMAT_IPPAYLOAD, - FORMAT_L4PAYLOAD, - FORMAT_END -}rtk_field_sel_t; - -typedef enum rtk_filter_iprange_e -{ - IPRANGE_UNUSED = 0, - IPRANGE_IPV4_SIP, - IPRANGE_IPV4_DIP, - IPRANGE_IPV6_SIP, - IPRANGE_IPV6_DIP, - IPRANGE_END -}rtk_filter_iprange_t; - -typedef enum rtk_filter_vidrange_e -{ - VIDRANGE_UNUSED = 0, - VIDRANGE_CVID, - VIDRANGE_SVID, - VIDRANGE_END -}rtk_filter_vidrange_t; - -typedef enum rtk_filter_portrange_e -{ - PORTRANGE_UNUSED = 0, - PORTRANGE_SPORT, - PORTRANGE_DPORT, - PORTRANGE_END -}rtk_filter_portrange_t; - -/* Function Name: - * rtk_filter_igrAcl_init - * Description: - * ACL initialization function - * Input: - * None - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_NULL_POINTER - Pointer pFilter_field or pFilter_cfg point to NULL. - * Note: - * This function enable and intialize ACL function - */ -extern rtk_api_ret_t rtk_filter_igrAcl_init(void); - -/* Function Name: - * rtk_filter_igrAcl_field_add - * Description: - * Add comparison rule to an ACL configuration - * Input: - * pFilter_cfg - The ACL configuration that this function will add comparison rule - * pFilter_field - The comparison rule that will be added. - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_NULL_POINTER - Pointer pFilter_field or pFilter_cfg point to NULL. - * RT_ERR_INPUT - Invalid input parameters. - * Note: - * This function add a comparison rule (*pFilter_field) to an ACL configuration (*pFilter_cfg). - * Pointer pFilter_cfg points to an ACL configuration structure, this structure keeps multiple ACL - * comparison rules by means of linked list. Pointer pFilter_field will be added to linked - * list keeped by structure that pFilter_cfg points to. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_field_add(rtk_filter_cfg_t *pFilter_cfg, rtk_filter_field_t *pFilter_field); - -/* Function Name: - * rtk_filter_igrAcl_cfg_add - * Description: - * Add an ACL configuration to ASIC - * Input: - * filter_id - Start index of ACL configuration. - * pFilter_cfg - The ACL configuration that this function will add comparison rule - * pFilter_action - Action(s) of ACL configuration. - * Output: - * ruleNum - number of rules written in acl table - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_NULL_POINTER - Pointer pFilter_field or pFilter_cfg point to NULL. - * RT_ERR_INPUT - Invalid input parameters. - * RT_ERR_ENTRY_INDEX - Invalid filter_id . - * RT_ERR_NULL_POINTER - Pointer pFilter_action or pFilter_cfg point to NULL. - * RT_ERR_FILTER_INACL_ACT_NOT_SUPPORT - Action is not supported in this chip. - * RT_ERR_FILTER_INACL_RULE_NOT_SUPPORT - Rule is not supported. - * Note: - * This function store pFilter_cfg, pFilter_action into ASIC. The starting - * index(es) is filter_id. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_cfg_add(rtk_filter_id_t filter_id, rtk_filter_cfg_t *pFilter_cfg, rtk_filter_action_t *pAction, rtk_filter_number_t *ruleNum); - -/* Function Name: - * rtk_filter_igrAcl_cfg_del - * Description: - * Delete an ACL configuration from ASIC - * Input: - * filter_id - Start index of ACL configuration. - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_FILTER_ENTRYIDX - Invalid filter_id. - * Note: - * This function delete a group of ACL rules starting from filter_id. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_cfg_del(rtk_filter_id_t filter_id); - -/* Function Name: - * rtk_filter_igrAcl_cfg_delAll - * Description: - * Delete all ACL entries from ASIC - * Input: - * None - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * Note: - * This function delete all ACL configuration from ASIC. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_cfg_delAll(void); - -/* Function Name: - * rtk_filter_igrAcl_cfg_get - * Description: - * Get one ingress acl configuration from ASIC. - * Input: - * filter_id - Start index of ACL configuration. - * Output: - * pFilter_cfg - buffer pointer of ingress acl data - * pFilter_action - buffer pointer of ingress acl action - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_NULL_POINTER - Pointer pFilter_action or pFilter_cfg point to NULL. - * RT_ERR_FILTER_ENTRYIDX - Invalid entry index. - * Note: - * This function delete all ACL configuration from ASIC. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_cfg_get(rtk_filter_id_t filter_id, rtk_filter_cfg_raw_t *pFilter_cfg, rtk_filter_action_t *pAction); - -/* Function Name: - * rtk_filter_igrAcl_unmatchAction_set - * Description: - * Set action to packets when no ACL configuration match - * Input: - * port - Port id. - * action - Action. - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port id. - * RT_ERR_INPUT - Invalid input parameters. - * Note: - * This function sets action of packets when no ACL configruation matches. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_unmatchAction_set(rtk_port_t port, rtk_filter_unmatch_action_t action); - -/* Function Name: - * rtk_filter_igrAcl_unmatchAction_get - * Description: - * Get action to packets when no ACL configuration match - * Input: - * port - Port id. - * Output: - * pAction - Action. - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port id. - * RT_ERR_INPUT - Invalid input parameters. - * Note: - * This function gets action of packets when no ACL configruation matches. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_unmatchAction_get(rtk_port_t port, rtk_filter_unmatch_action_t* action); - -/* Function Name: - * rtk_filter_igrAcl_state_set - * Description: - * Set state of ingress ACL. - * Input: - * port - Port id. - * state - Ingress ACL state. - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port id. - * RT_ERR_INPUT - Invalid input parameters. - * Note: - * This function gets action of packets when no ACL configruation matches. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_state_set(rtk_port_t port, rtk_filter_state_t state); - -/* Function Name: - * rtk_filter_igrAcl_state_get - * Description: - * Get state of ingress ACL. - * Input: - * port - Port id. - * Output: - * pState - Ingress ACL state. - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_PORT_ID - Invalid port id. - * RT_ERR_INPUT - Invalid input parameters. - * Note: - * This function gets action of packets when no ACL configruation matches. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_state_get(rtk_port_t port, rtk_filter_state_t* state); - -/* Function Name: - * rtk_filter_igrAcl_template_set - * Description: - * Set template of ingress ACL. - * Input: - * template - Ingress ACL template - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_INPUT - Invalid input parameters. - * Note: - * This function set ACL template. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_template_set(rtk_filter_template_t *aclTemplate); - -/* Function Name: - * rtk_filter_igrAcl_template_get - * Description: - * Get template of ingress ACL. - * Input: - * template - Ingress ACL template - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * Note: - * This function gets template of ACL. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_template_get(rtk_filter_template_t *aclTemplate); - -/* Function Name: - * rtk_filter_igrAcl_field_sel_set - * Description: - * Set user defined field selectors in HSB - * Input: - * index - index of field selector 0-15 - * format - Format of field selector - * offset - Retrieving data offset - * Output: - * None - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * Note: - * System support 16 user defined field selctors. - * Each selector can be enabled or disable. - * User can defined retrieving 16-bits in many predefiend - * standard l2/l3/l4 payload. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_field_sel_set(rtk_uint32 index, rtk_field_sel_t format, rtk_uint32 offset); - -/* Function Name: - * rtk_filter_igrAcl_field_sel_get - * Description: - * Get user defined field selectors in HSB - * Input: - * index - index of field selector 0-15 - * Output: - * pFormat - Format of field selector - * pOffset - Retrieving data offset - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * Note: - * None. - */ -extern rtk_api_ret_t rtk_filter_igrAcl_field_sel_get(rtk_uint32 index, rtk_field_sel_t *pFormat, rtk_uint32 *pOffset); - -/* Function Name: - * rtk_filter_iprange_set - * Description: - * Set IP Range check - * Input: - * index - index of IP Range 0-15 - * type - IP Range check type, 0:Delete a entry, 1: IPv4_SIP, 2: IPv4_DIP, 3:IPv6_SIP, 4:IPv6_DIP - * upperIp - The upper bound of IP range - * lowerIp - The lower Bound of IP range - * Output: - * None. - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - The parameter is out of range - * RT_ERR_INPUT - Input error - * Note: - * upperIp must be larger or equal than lowerIp. - */ -extern rtk_api_ret_t rtk_filter_iprange_set(rtk_uint32 index, rtk_filter_iprange_t type, ipaddr_t upperIp, ipaddr_t lowerIp); - -/* Function Name: - * rtk_filter_iprange_get - * Description: - * Set IP Range check - * Input: - * index - index of IP Range 0-15 - * Output: - * pType - IP Range check type, 0:Delete a entry, 1: IPv4_SIP, 2: IPv4_DIP, 3:IPv6_SIP, 4:IPv6_DIP - * pUpperIp - The upper bound of IP range - * pLowerIp - The lower Bound of IP range - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - The parameter is out of range - * Note: - * upperIp must be larger or equal than lowerIp. - */ -extern rtk_api_ret_t rtk_filter_iprange_get(rtk_uint32 index, rtk_filter_iprange_t *pType, ipaddr_t *pUpperIp, ipaddr_t *pLowerIp); - -/* Function Name: - * rtk_filter_vidrange_set - * Description: - * Set VID Range check - * Input: - * index - index of VID Range 0-15 - * type - IP Range check type, 0:Delete a entry, 1: CVID, 2: SVID - * upperVid - The upper bound of VID range - * lowerVid - The lower Bound of VID range - * Output: - * None. - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - The parameter is out of range - * RT_ERR_INPUT - Input error - * Note: - * upperVid must be larger or equal than lowerVid. - */ -extern rtk_api_ret_t rtk_filter_vidrange_set(rtk_uint32 index, rtk_filter_vidrange_t type, rtk_uint32 upperVid, rtk_uint32 lowerVid); - -/* Function Name: - * rtk_filter_vidrange_get - * Description: - * Get VID Range check - * Input: - * index - index of VID Range 0-15 - * Output: - * pType - IP Range check type, 0:Unused, 1: CVID, 2: SVID - * pUpperVid - The upper bound of VID range - * pLowerVid - The lower Bound of VID range - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - The parameter is out of range - * Note: - * None. - */ -extern rtk_api_ret_t rtk_filter_vidrange_get(rtk_uint32 index, rtk_filter_vidrange_t *pType, rtk_uint32 *pUpperVid, rtk_uint32 *pLowerVid); - -/* Function Name: - * rtk_filter_portrange_set - * Description: - * Set Port Range check - * Input: - * index - index of Port Range 0-15 - * type - IP Range check type, 0:Delete a entry, 1: Source Port, 2: Destnation Port - * upperPort - The upper bound of Port range - * lowerPort - The lower Bound of Port range - * Output: - * None. - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - The parameter is out of range - * RT_ERR_INPUT - Input error - * Note: - * upperPort must be larger or equal than lowerPort. - */ -extern rtk_api_ret_t rtk_filter_portrange_set(rtk_uint32 index, rtk_filter_portrange_t type, rtk_uint32 upperPort, rtk_uint32 lowerPort); - -/* Function Name: - * rtk_filter_portrange_get - * Description: - * Set Port Range check - * Input: - * index - index of Port Range 0-15 - * Output: - * pType - IP Range check type, 0:Delete a entry, 1: Source Port, 2: Destnation Port - * pUpperPort - The upper bound of Port range - * pLowerPort - The lower Bound of Port range - * Return: - * RT_ERR_OK - OK - * RT_ERR_FAILED - Failed - * RT_ERR_SMI - SMI access error - * RT_ERR_OUT_OF_RANGE - The parameter is out of range - * RT_ERR_INPUT - Input error - * Note: - * None. - */ -extern rtk_api_ret_t rtk_filter_portrange_get(rtk_uint32 index, rtk_filter_portrange_t *pType, rtk_uint32 *pUpperPort, rtk_uint32 *pLowerPort); - -/* Function Name: - * rtk_filter_igrAclPolarity_set - * Description: - * Set ACL Goip control palarity - * Input: - * polarity - 1: High, 0: Low - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * none - */ -extern rtk_api_ret_t rtk_filter_igrAclPolarity_set(rtk_uint32 polarity); - -/* Function Name: - * rtk_filter_igrAclPolarity_get - * Description: - * Get ACL Goip control palarity - * Input: - * pPolarity - 1: High, 0: Low - * Output: - * None - * Return: - * RT_ERR_OK - Success - * RT_ERR_SMI - SMI access error - * Note: - * none - */ -extern rtk_api_ret_t rtk_filter_igrAclPolarity_get(rtk_uint32* pPolarity); - - -#endif /* __RTK_API_ACL_H__ */ |