/* * Copyright (C) 2012 Realtek Semiconductor Corp. * All Rights Reserved. * * This program is the proprietary software of Realtek Semiconductor * Corporation and/or its licensors, and only be used, duplicated, * modified or distributed under the authorized license from Realtek. * * ANY USE OF THE SOFTWARE OTHER THAN AS AUTHORIZED UNDER * THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. * * $Revision: 63404 $ * $Date: 2015-11-13 16:16:54 +0800 (Fri, 13 Nov 2015) $ * * Purpose : Definition of ACL API * * Feature : The file includes the following modules and sub-modules * (1) ACL rule action configure and modification * */ #ifndef __DAL_APOLLOMP_ACL_H__ #define __DAL_APOLLOMP_ACL_H__ /* * Include Files */ #include #include #include /* * Symbol Definition */ #define APOLLOMP_DAL_ACL_NO 128 #define APOLLOMP_DAL_ACL_MAX (APOLLOMP_DAL_ACL_NO-1) #define APOLLOMP_DAL_ACL_TEMPLATE_FIELD_NO 8 typedef enum apollomp_dal_acl_fieldTypes_e { APOLLOMP_DAL_ACL_UNUSED, APOLLOMP_DAL_ACL_DMAC0, APOLLOMP_DAL_ACL_DMAC1, APOLLOMP_DAL_ACL_DMAC2, APOLLOMP_DAL_ACL_SMAC0, APOLLOMP_DAL_ACL_SMAC1, APOLLOMP_DAL_ACL_SMAC2, APOLLOMP_DAL_ACL_ETHERTYPE, APOLLOMP_DAL_ACL_STAG, APOLLOMP_DAL_ACL_CTAG, APOLLOMP_DAL_ACL_GEMIDXLLIDX, APOLLOMP_DAL_ACL_IP4SIP0 = 0x10, APOLLOMP_DAL_ACL_IP4SIP1, APOLLOMP_DAL_ACL_IP4DIP0, APOLLOMP_DAL_ACL_IP4DIP1, APOLLOMP_DAL_ACL_IP6SIP0WITHIPV4 = 0x20, APOLLOMP_DAL_ACL_IP6SIP1WITHIPV4, APOLLOMP_DAL_ACL_IP6DIP0WITHIPV4 = 0x28, APOLLOMP_DAL_ACL_IP6DIP1WITHIPV4, APOLLOMP_DAL_ACL_IP6NH, APOLLOMP_DAL_ACL_VIDRANGE = 0x30, APOLLOMP_DAL_ACL_IPRANGE, APOLLOMP_DAL_ACL_PORTRANGE, APOLLOMP_DAL_ACL_PKTLENRANGE, APOLLOMP_DAL_ACL_FIELD_VALID, APOLLOMP_DAL_ACL_EXT_PMSK, APOLLOMP_DAL_ACL_FIELD_SELECT00 = 0x40, APOLLOMP_DAL_ACL_FIELD_SELECT01, APOLLOMP_DAL_ACL_FIELD_SELECT02, APOLLOMP_DAL_ACL_FIELD_SELECT03, APOLLOMP_DAL_ACL_FIELD_SELECT04, APOLLOMP_DAL_ACL_FIELD_SELECT05, APOLLOMP_DAL_ACL_FIELD_SELECT06, APOLLOMP_DAL_ACL_FIELD_SELECT07, APOLLOMP_DAL_ACL_FIELD_SELECT08, APOLLOMP_DAL_ACL_FIELD_SELECT09, APOLLOMP_DAL_ACL_FIELD_SELECT10, APOLLOMP_DAL_ACL_FIELD_SELECT11, APOLLOMP_DAL_ACL_FIELD_SELECT12, APOLLOMP_DAL_ACL_FIELD_SELECT13, APOLLOMP_DAL_ACL_FIELD_SELECT14, APOLLOMP_DAL_ACL_FIELD_SELECT15, APOLLOMP_DAL_ACL_TYPE_END }apollomp_dal_acl_fieldTypes_t; typedef enum apollomp_dal_acl_vidrange_e { APOLLOMP_DAL_ACL_VIDRANGE_UNUSED = 0, APOLLOMP_DAL_ACL_VIDRANGE_CVID, APOLLOMP_DAL_ACL_VIDRANGE_SVID, APOLLOMP_DAL_ACL_VIDRANGE_END }apollomp_dal_acl_vidrange_t; typedef enum apollomp_dal_acl_iprange_e { APOLLOMP_DAL_ACL_IPRANGE_UNUSED = 0, APOLLOMP_DAL_ACL_IPRANGE_IPV4_SIP, APOLLOMP_DAL_ACL_IPRANGE_IPV4_DIP, APOLLOMP_DAL_ACL_IPRANGE_IPV6_SIP, APOLLOMP_DAL_ACL_IPRANGE_IPV6_DIP, APOLLOMP_DAL_ACL_IPRANGE_END }apollomp_dal_acl_iprange_t; typedef enum apollomp_dal_acl_portrange_e { APOLLOMP_DAL_ACL_PORTRANGE_UNUSED = 0, APOLLOMP_DAL_ACL_PORTRANGE_SPORT, APOLLOMP_DAL_ACL_PORTRANGE_DPORT, APOLLOMP_DAL_ACL_PORTRANGE_END }apollomp_dal_acl_portrange_type_t; typedef enum apollomp_dal_field_sel_e { APOLLOMP_DAL_FIELD_FORMAT_DEFAULT = 0, APOLLOMP_DAL_FIELD_FORMAT_RAW, APOLLOMP_DAL_FIELD_FORMAT_LLC, APOLLOMP_DAL_FIELD_FORMAT_IPV4, APOLLOMP_DAL_FIELD_FORMAT_ARP, APOLLOMP_DAL_FIELD_FORMAT_IPV6, APOLLOMP_DAL_FIELD_FORMAT_IPPAYLOAD, APOLLOMP_DAL_FIELD_FORMAT_L4PAYLOAD, APOLLOMP_DAL_FIELD_FORMAT_END }apollomp_dal_field_sel_t; /*clvan action*/ typedef enum apollomp_dal_acl_igr_cvlan_act_ctrl_e { APOLLOMP_DAL_ACL_IGR_CVLAN_IGR_CVLAN_ACT = 0, APOLLOMP_DAL_ACL_IGR_CVLAN_EGR_CVLAN_ACT, APOLLOMP_DAL_ACL_IGR_CVLAN_DS_SVID_ACT, APOLLOMP_DAL_ACL_IGR_CVLAN_POLICING_ACT, APOLLOMP_DAL_ACL_IGR_CVLAN_MIB_ACT, APOLLOMP_DAL_ACL_IGR_CVLAN_1P_REMARK_ACT, APOLLOMP_DAL_ACL_IGR_CVLAN_ACT_END, } apollomp_dal_acl_igr_cvlan_act_ctrl_t; /*svlan action*/ typedef enum apollomp_dal_acl_igr_svlan_act_ctrl_e { APOLLOMP_DAL_ACL_IGR_SVLAN_IGR_SVLAN_ACT = 0, APOLLOMP_DAL_ACL_IGR_SVLAN_EGR_SVLAN_ACT, APOLLOMP_DAL_ACL_IGR_SVLAN_US_CVID_ACT, APOLLOMP_DAL_ACL_IGR_SVLAN_POLICING_ACT, APOLLOMP_DAL_ACL_IGR_SVLAN_MIB_ACT, APOLLOMP_DAL_ACL_IGR_SVLAN_1P_REMARK_ACT, APOLLOMP_DAL_ACL_IGR_SVLAN_DSCP_REMARK_ACT, APOLLOMP_DAL_ACL_IGR_SVLAN_ROUTE_ACT, APOLLOMP_DAL_ACL_IGR_SVLAN_ACT_END, } apollomp_dal_acl_igr_svlan_act_ctrl_t; /*priority action*/ typedef enum apollomp_dal_acl_igr_pri_act_ctrl_e { APOLLOMP_DAL_ACL_IGR_PRI_ACL_PRI_ASSIGN_ACT = 0, APOLLOMP_DAL_ACL_IGR_PRI_DSCP_REMARK_ACT, APOLLOMP_DAL_ACL_IGR_PRI_1P_REMARK_ACT, APOLLOMP_DAL_ACL_IGR_PRI_POLICING_ACT, APOLLOMP_DAL_ACL_IGR_PRI_MIB_ACT, APOLLOMP_DAL_ACL_IGR_PRI_ROUTE_ACT, APOLLOMP_DAL_ACL_IGR_PRI_ACT_END, } apollomp_dal_acl_igr_pri_act_ctrl_t; typedef enum apollomp_dal_acl_igr_log_act_ctrl_e { APOLLOMP_DAL_ACL_IGR_LOG_POLICING_ACT = 0, APOLLOMP_DAL_ACL_IGR_LOG_MIB_ACT, APOLLOMP_DAL_ACL_IGR_LOG_ACT_END, } apollomp_dal_acl_igr_log_act_ctrl_t; /*forward action*/ typedef enum apollomp_dal_acl_igr_forward_act_ctrl_e { APOLLOMP_DAL_ACL_IGR_FORWARD_COPY_ACT = 0, APOLLOMP_DAL_ACL_IGR_FORWARD_REDIRECT_ACT, APOLLOMP_DAL_ACL_IGR_FORWARD_IGR_MIRROR_ACT, APOLLOMP_DAL_ACL_IGR_FORWARD_TRAP_ACT, APOLLOMP_DAL_ACL_IGR_FORWARD_ACT_END, } apollomp_dal_acl_igr_forward_act_ctrl_t; /*interrupt, GPIO action*/ typedef enum apollomp_acl_igr_extend_act_ctrl_e { APOLLOMP_DAL_ACL_IGR_EXTEND_NONE_ACT = 0, APOLLOMP_DAL_ACL_IGR_EXTEND_SID_ACT, APOLLOMP_DAL_ACL_IGR_EXTEND_LLID_ACT, APOLLOMP_DAL_ACL_IGR_EXTEND_EXT_ACT, APOLLOMP_DAL_ACL_IGR_EXTEND_ACT_END, } apollomp_acl_igr_extend_act_ctrl_t; /* * Macro Declaration */ /* * Function Declaration */ /* Function Name: * dal_apollomp_acl_init * Description: * Initialize ACL module. * Input: * None * Output: * None * Return: * RT_ERR_OK * RT_ERR_FAILED * Note: * Must initialize ACL module before calling any ACL APIs. * Apollo init acl mode as ACL_IGR_RULE_MODE_0 */ extern int32 dal_apollomp_acl_init(void); /* Function Name: * dal_apollomp_acl_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_INPUT - Invalid input parameters. * Note: * This function set ACL template. */ extern int32 dal_apollomp_acl_template_set(rtk_acl_template_t *aclTemplate); /* Function Name: * dal_apollomp_acl_template_get * Description: * Get template of ingress ACL. * Input: * template - Ingress ACL template * Output: * template - Ingress ACL template * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_INPUT - Invalid input parameters. * Note: * This function get ACL template. */ extern int32 dal_apollomp_acl_template_get(rtk_acl_template_t *aclTemplate); /* Function Name: * dal_apollomp_acl_fieldSelect_set * Description: * Set user defined field selectors in HSB * Input: * pFieldEntry - pointer of field selector entry * Output: * None * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * 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 int32 dal_apollomp_acl_fieldSelect_set(rtk_acl_field_entry_t *pFieldEntry); /* Function Name: * dal_apollomp_acl_fieldSelect_get * Description: * Get user defined field selectors in HSB * Input: * None * Output: * pFieldEntry - pointer of field selector entry * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * Note: * None. */ extern int32 dal_apollomp_acl_fieldSelect_get(rtk_acl_field_entry_t *pFieldEntry); /* Function Name: * dal_apollomp_acl_igrRuleAction_get * Description: * Get an ACL action from ASIC * Input: * None. * Output: * pAclRule - The ACL configuration that this function will add comparison rule * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_NULL_POINTER - Pointer pAclRule point to NULL. * RT_ERR_INPUT - Invalid input parameters. * Note: * use this API to get action control and data */ extern int32 dal_apollomp_acl_igrRuleAction_get(rtk_acl_ingress_entry_t *pAclRule); /* Function Name: * dal_apollomp_acl_igrRuleAction_set * Description: * Get an ACL action from ASIC * Input: * pAclRule - The ACL configuration that this function will add comparison rule * Output: * none * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_NULL_POINTER - Pointer pAclRule point to NULL. * RT_ERR_INPUT - Invalid input parameters. * Note: * use this API to set action control and data */ extern int32 dal_apollomp_acl_igrRuleAction_set(rtk_acl_ingress_entry_t *pAclRule); /* Function Name: * dal_apollomp_acl_igrRuleEntry_get * Description: * Get an ACL entry from ASIC * Input: * None. * Output: * pAclRule - The ACL configuration that this function will add comparison rule * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_NULL_POINTER - Pointer pAclRule point to NULL. * RT_ERR_INPUT - Invalid input parameters. * Note: * use this API to get rule entry the field data will return in raw format * raw data is return in pAclRule->field.readField */ extern int32 dal_apollomp_acl_igrRuleEntry_get(rtk_acl_ingress_entry_t *pAclRule); /* Function Name: * dal_apollomp_acl_igrRuleField_add * Description: * Add comparison rule to an ACL configuration * Input: * pAclEntry - The ACL configuration that this function will add comparison rule * pAclField - The comparison rule that will be added. * Output: * None. * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * 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 (*pAclField) to an ACL configuration (*pAclEntry). * Pointer pFilter_cfg points to an ACL configuration structure, this structure keeps multiple ACL * comparison rules by means of linked list. Pointer pAclField will be added to linked * list keeped by structure that pAclEntry points to. * caller should not free (*pAclField) before dal_apollomp_acl_igrRuleEntry_add is called */ extern int32 dal_apollomp_acl_igrRuleField_add(rtk_acl_ingress_entry_t *pAclRule, rtk_acl_field_t *pAclField); /* Function Name: * dal_apollomp_acl_igrRuleEntry_add * Description: * Add an ACL configuration to ASIC * Input: * pAclRule - ACL ingress filter rule configuration. * Output: * None * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_NULL_POINTER - Pointer pAclrule point to NULL. * RT_ERR_INPUT - Invalid input parameters. * RT_ERR_ENTRY_INDEX - Invalid entryIdx . * Note: * None */ extern int32 dal_apollomp_acl_igrRuleEntry_add(rtk_acl_ingress_entry_t *pAclRule); /* Function Name: * dal_apollomp_acl_igrRuleEntry_del * Description: * Delete an ACL configuration from ASIC * Input: * pAclrule - ACL ingress filter rule configuration. * Output: * None * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_ENTRY_INDEX - Invalid entryIdx . * Note: * None */ extern int32 dal_apollomp_acl_igrRuleEntry_del(uint32 index); /* Function Name: * dal_apollomp_acl_igrRuleEntry_delAll * Description: * Delete all ACL configuration from ASIC * Input: * pAclrule - ACL ingress filter rule configuration. * Output: * None * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * Note: * None */ extern int32 dal_apollomp_acl_igrRuleEntry_delAll(void); /* Function Name: * dal_apollomp_acl_igrUnmatchAction_set * Description: * Apply 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_PORT_ID - Invalid port id. * RT_ERR_INPUT - Invalid input parameters. * Note: * This function gets action of packets when no ACL configruation matches. */ extern int32 dal_apollomp_acl_igrUnmatchAction_set(rtk_port_t port, rtk_filter_unmatch_action_type_t action); /* Function Name: * dal_apollomp_acl_igrUnmatchAction_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 int32 dal_apollomp_acl_igrUnmatchAction_get(rtk_port_t port, rtk_filter_unmatch_action_type_t *pAction); /* Function Name: * dal_apollomp_acl_igrState_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_PORT_ID - Invalid port id. * RT_ERR_INPUT - Invalid input parameters. * Note: * This function set per-port ACL filtering state. */ extern int32 dal_apollomp_acl_igrState_set(rtk_port_t port, rtk_enable_t state); /* Function Name: * dal_apollomp_acl_igrState_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_PORT_ID - Invalid port id. * RT_ERR_INPUT - Invalid input parameters. * Note: * This function gets per-port ACL filtering state. */ extern int32 dal_apollomp_acl_igrState_get(rtk_port_t port, rtk_enable_t *pState); /* Function Name: * dal_apollomp_acl_ipRange_set * Description: * Set IP Range check * Input: * pRangeEntry - IP Range entry * Output: * None. * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_OUT_OF_RANGE - The parameter is out of range * RT_ERR_INPUT - Input error * Note: * upper IP must be larger or equal than lower IP. */ extern int32 dal_apollomp_acl_ipRange_set(rtk_acl_rangeCheck_ip_t *pRangeEntry); /* Function Name: * dal_apollomp_acl_ipRange_get * Description: * Set IP Range check * Input: * None. * Output: * pRangeEntry - IP Range entry * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_OUT_OF_RANGE - The parameter is out of range * Note: * None. */ extern int32 dal_apollomp_acl_ipRange_get(rtk_acl_rangeCheck_ip_t *pRangeEntry); /* Function Name: * dal_apollomp_acl_vidRange_set * Description: * Set VID Range check * Input: * pRangeEntry - VLAN id Range entry * Output: * None. * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_OUT_OF_RANGE - The parameter is out of range * RT_ERR_INPUT - Input error * Note: * upper Vid must be larger or equal than lowerVid. */ extern int32 dal_apollomp_acl_vidRange_set(rtk_acl_rangeCheck_vid_t *pRangeEntry); /* Function Name: * dal_apollomp_acl_vidRange_get * Description: * Get VID Range check * Input: * None. * Output: * pRangeEntry - VLAN id Range entry * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_OUT_OF_RANGE - The parameter is out of range * Note: * None. */ extern int32 dal_apollomp_acl_vidRange_get(rtk_acl_rangeCheck_vid_t *pRangeEntry); /* Function Name: * dal_apollomp_acl_portRange_set * Description: * Set Port Range check * Input: * pRangeEntry - L4 Port Range entry * Output: * None. * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_OUT_OF_RANGE - The parameter is out of range * RT_ERR_INPUT - Input error * Note: * upper Port must be larger or equal than lowerPort. */ extern int32 dal_apollomp_acl_portRange_set(rtk_acl_rangeCheck_l4Port_t *pRangeEntry); /* Function Name: * dal_apollomp_acl_portRange_get * Description: * Set Port Range check * Input: * None * Output: * pRangeEntry - L4 Port Range entry * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_OUT_OF_RANGE - The parameter is out of range * RT_ERR_INPUT - Input error * Note: * None. */ extern int32 dal_apollomp_acl_portRange_get(rtk_acl_rangeCheck_l4Port_t *pRangeEntry); /* Function Name: * dal_apollomp_acl_packetLengthRange_set * Description: * Set packet length Range check * Input: * pRangeEntry - packet length range entry * Output: * None. * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_OUT_OF_RANGE - The parameter is out of range * RT_ERR_INPUT - Input error * Note: * upper length must be larger or equal than lower length. */ extern int32 dal_apollomp_acl_packetLengthRange_set(rtk_acl_rangeCheck_pktLength_t *pRangeEntry); /* Function Name: * dal_apollomp_acl_packetLengthRange_get * Description: * Set packet length Range check * Input: * None * Output: * pRangeEntry - packet length range entry * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_OUT_OF_RANGE - The parameter is out of range * RT_ERR_INPUT - Input error * Note: * None. */ extern int32 dal_apollomp_acl_packetLengthRange_get(rtk_acl_rangeCheck_pktLength_t *pRangeEntry); /* Function Name: * dal_apollomp_acl_igrRuleMode_set * Description: * Set ingress ACL rule mode * Input: * mode - ingress ACL rule mode * Output: * None * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_INPUT - Input error * Note: * - ACL_IGR_RULE_MODE_0, 64 rules, the size each rule is 16x8 bits * - ACL_IGR_RULE_MODE_1, 128 rules, * - the size each rule is 16x4 bits(entry 0~63) * - the size each rule is 16x3 bits(entry 64~127) */ extern int32 dal_apollomp_acl_igrRuleMode_set(rtk_acl_igr_rule_mode_t mode); /* Function Name: * dal_apollomp_acl_igrRuleMode_get * Description: * Get ingress ACL rule mode * Input: * None * Output: * pMode - ingress ACL rule mode * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * RT_ERR_INPUT - Input error * Note: * - ACL_IGR_RULE_MODE_0, 64 rules, the size each rule is 16x8 bits * - ACL_IGR_RULE_MODE_1, 128 rules, * - the size of each rule is 16x4 bits(entry 0~63) * - the size of each rule is 16x3 bits(entry 64~127) * Mode chaged all template/rule will be cleared */ extern int32 dal_apollomp_acl_igrRuleMode_get(rtk_acl_igr_rule_mode_t *pMode); /* Function Name: * dal_apollomp_acl_igrPermitState_set * Description: * Set permit 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_PORT_ID - Invalid port id. * RT_ERR_INPUT - Invalid input parameters. * Note: * This function set action of packets when no ACL configruation matches. */ extern int32 dal_apollomp_acl_igrPermitState_set(rtk_port_t port, rtk_enable_t state); /* Function Name: * dal_apollomp_acl_igrPermitState_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_PORT_ID - Invalid port id. * RT_ERR_INPUT - Invalid input parameters. * Note: * This function gets action of packets when no ACL configruation matches. */ extern int32 dal_apollomp_acl_igrPermitState_get(rtk_port_t port, rtk_enable_t *pState); /* Function Name: * dal_apollomp_acl_dbgInfo_get * Description: * Get ACL debug information * Input: * intrType: type of interrupt * Output: * pDbgCnt: point of relative debug counter * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * Note: */ extern int32 dal_apollomp_acl_dbgInfo_get(rtk_acl_dbgCnt_t *pDbgCnt); /* Function Name: * dal_apollomp_acl_dbgHitReason_get * Description: * Get ACL hit reason information * Input: * None * Output: * pDbgReason: point of relative debug reason and index * Return: * RT_ERR_OK - OK * RT_ERR_FAILED - Failed * Note: */ extern int32 dal_apollomp_acl_dbgHitReason_get(rtk_acl_debug_reason_t *pDbgReason); #endif /* __DAL_APOLLOMP_ACL_H__ */