#ifndef RTK_RG_ACL_APOLLO_H #define RTK_RG_ACL_APOLLO_H #include <common/type.h> #include <common/rt_type.h> //Apollo Platform #define MIN_ACL_ENTRY_INDEX RESERVED_ACL_BEFORE #define MAX_ACL_ENTRY_INDEX RESERVED_ACL_AFTER #define MAX_ACL_SW_ENTRY_SIZE 128 #define MAX_ACL_ENTRY_SIZE 64 #define MAX_ACL_IPRANGETABLE_SIZE 8 #define MAX_ACL_PORTRANGETABLE_SIZE 16 #define MAX_ACL_TEMPLATE_SIZE 4 //this size also limit the acl multiple hit size(one aclSWEntry at most mapping to 4 acl ASIC entry) #define MIN_CF_64TO511_ENTRY_SIZE 64 #define MAX_CF_64TO511_ENTRY_SIZE 511 #define MAX_CF0To63_ENTRY_SIZE 64 #define MAX_CF_IPRANGETABLE_SIZE 8 #define MAX_CF_PORTRANGETABLE_SIZE 8 #define MAX_CF_DSCPTABLE_SIZE 8 #define CF_FOR_L2_FLOW_INDEX_START 64 #define CF_FOR_L2_FLOW_INDEX_END 511 #define TOTAL_CF_ENTRY_SIZE 512 #define RESERVED_ACL_BEFORE rg_db.systemGlobal.aclAndCfReservedRule.aclLowerBoundary #define RESERVED_ACL_AFTER rg_db.systemGlobal.aclAndCfReservedRule.aclUpperBoundary #define RESERVED_CF_BEFORE rg_db.systemGlobal.aclAndCfReservedRule.cfLowerBoundary #define RESERVED_CF_AFTER rg_db.systemGlobal.aclAndCfReservedRule.cfUpperBoundary #define PURE_ACL_PATTERN_BITS \ (INGRESS_PORT_BIT|INGRESS_INTF_BIT|INGRESS_ETHERTYPE_BIT|INGRESS_CTAG_PRI_BIT|INGRESS_CTAG_VID_BIT|INGRESS_SMAC_BIT \ |INGRESS_DMAC_BIT|INGRESS_DSCP_BIT|INGRESS_L4_TCP_BIT|INGRESS_L4_UDP_BIT|INGRESS_IPV6_SIP_RANGE_BIT|INGRESS_IPV6_DIP_RANGE_BIT \ |INGRESS_IPV4_SIP_RANGE_BIT|INGRESS_IPV4_DIP_RANGE_BIT|INGRESS_L4_SPORT_RANGE_BIT|INGRESS_L4_DPORT_RANGE_BIT \ |INGRESS_L4_ICMP_BIT|INGRESS_IPV6_DSCP_BIT|INGRESS_STREAM_ID_BIT|INGRESS_STAG_PRI_BIT|INGRESS_STAG_VID_BIT|INGRESS_STAGIF_BIT|INGRESS_CTAGIF_BIT \ |INGRESS_L4_POROTCAL_VALUE_BIT|INGRESS_TOS_BIT|INGRESS_IPV6_TC_BIT|INGRESS_IPV6_SIP_BIT|INGRESS_IPV6_DIP_BIT|INGRESS_WLANDEV_BIT|INGRESS_IPV4_TAGIF_BIT|INGRESS_IPV6_TAGIF_BIT \ |INGRESS_CTAG_CFI_BIT|INGRESS_STAG_DEI_BIT) #define PURE_CF_PATTERN_BITS \ (EGRESS_INTF_BIT|EGRESS_IPV4_SIP_RANGE_BIT|EGRESS_IPV4_DIP_RANGE_BIT \ |EGRESS_L4_SPORT_RANGE_BIT|EGRESS_L4_DPORT_RANGE_BIT|EGRESS_CTAG_PRI_BIT|EGRESS_CTAG_VID_BIT|INGRESS_EGRESS_PORTIDX_BIT|INTERNAL_PRI_BIT) //internal typedef enum rtk_rg_aclField_Teamplate_s { //related to Template[0] TEMPLATE_DMAC0 =0, TEMPLATE_DMAC1 =1, TEMPLATE_DMAC2 =2, TEMPLATE_EXTPORTMASK =3, TEMPLATE_SMAC0 =4, TEMPLATE_SMAC1 =5, TEMPLATE_SMAC2 =6, TEMPLATE_ETHERTYPE =7, //related to Template[1] TEMPLATE_FIELDSELECT00 =8,//l4_dst_port TEMPLATE_IPv4SIP0 =9, TEMPLATE_IPv4SIP1 =10, TEMPLATE_FIELDSELECT01 =11, //l4_src_port TEMPLATE_FIELDSELECT14 =12,//IP protocal TEMPLATE_PORTRANGE =13, TEMPLATE_IPv4DIP0 =14, TEMPLATE_IPv4DIP1 =15, //related to Template[2] TEMPLATE_CTAG =16, TEMPLATE_GEMPORT =17, //genport means ingress_stream_id TEMPLATE_STAG =18, TEMPLATE_FIELDSELECT03 =19, //SIPv6[128:112] or DIPv6[128:112] or two byte after ETHERTYPE(for EPON) TEMPLATE_FIELDSELECT04 =20, //DSCP #ifdef CONFIG_RG_ACL_V6SIP_FILTER_BUT_DISABLE_V6ROUTING TEMPLATE_IPv6DIP1 =21, //DIPv6[31:16] TEMPLATE_IPv6DIP0 =22, //DIPv6[15:0] #else TEMPLATE_IPv6SIP1 =21, //SIPv6[31:16] TEMPLATE_IPv6SIP0 =22, //SIPv6[15:0] #endif TEMPLATE_FIELDSELECT15 =23, //SessionID or DSCPv6 //related to Template[3] TEMPLATE_FIELDSELECT08 =24, //DIPv6[47:32] TEMPLATE_FIELDSELECT09 =25, //DIPv6[63:48] TEMPLATE_FIELDSELECT10 =26, //DIPv6[79:64] TEMPLATE_FIELDSELECT11 =27, //DIPv6[95:80] TEMPLATE_FIELDSELECT12 =28, //DIPv6[111:96] TEMPLATE_FIELDSELECT13 =29, //DIPv6[127:112] #ifdef CONFIG_RG_ACL_V6SIP_FILTER_BUT_DISABLE_V6ROUTING TEMPLATE_IPv6SIP1 =30, //SIPv6[31:16] TEMPLATE_IPv6SIP0 =31, //SIPv6[15:0] #else TEMPLATE_IPv6DIP1 =30, //DIPv6[31:16] TEMPLATE_IPv6DIP0 =31, //DIPv6[15:0] #endif TEMPLATE_END }rtk_rg_aclField_Teamplate_t; typedef enum rtk_rg_aclSWEntry_used_tables_field_s { ACL_USED_IPTABLE_IPV4SIP = 0x1, ACL_USED_IPTABLE_IPV4DIP = 0x2, ACL_USED_IPTABLE_IPV6SIP = 0x4, ACL_USED_IPTABLE_IPV6DIP = 0x8, ACL_USED_PORTTABLE_SPORT = 0x10, ACL_USED_PORTTABLE_DPORT = 0x20, CF_USED_IPTABLE_IPV4SIP = 0x40, CF_USED_IPTABLE_IPV4DIP = 0x80, CF_USED_PORTTABLE_SPORT = 0x100, CF_USED_PORTTABLE_DPORT = 0x200, CF_USED_DSCPTABLE = 0x400, } rtk_rg_aclSWEntry_used_tables_field_t; typedef enum rtk_rg_aclSWEntry_used_tables_index_s { ACL_USED_IPTABLE_IPV4SIP_INDEX = 0, ACL_USED_IPTABLE_IPV4DIP_INDEX , ACL_USED_IPTABLE_IPV6SIP_INDEX , ACL_USED_IPTABLE_IPV6DIP_INDEX , ACL_USED_PORTTABLE_SPORT_INDEX , ACL_USED_PORTTABLE_DPORT_INDEX , CF_USED_IPTABLE_IPV4SIP_INDEX , CF_USED_IPTABLE_IPV4DIP_INDEX , CF_USED_PORTTABLE_SPORT_INDEX , CF_USED_PORTTABLE_DPORT_INDEX , CF_USED_DSCPTABLE_INDEX, USED_TABLE_END } rtk_rg_aclSWEntry_used_tables_index_t; typedef enum rtk_rg_aclSWEntry_type_s { UNUSE = 0, ACL_USE, QOS_USE, OTHERS_USE, } rtk_rg_aclSWEntry_type_t; //ACL Reserved typedef enum rtk_rg_aclAndCf_reserved_type_e { /*HEAD PATCH: The lower index number, the higher acl&cf priority*/ RTK_RG_ACLANDCF_RESERVED_GPON_SMALL_BANDWIDTH_CONTROL=0, RTK_RG_ACLANDCF_RESERVED_EPON_DROP_AND_INTERRUPT, RTK_RG_ACLANDCF_RESERVED_EPON_ASSIGN_PRIORITY, RTK_RG_ACLANDCF_RESERVED_ACL_SKIP_HW_REARRANGE_PERMIT_AND_TRAP_RESERV, RTK_RG_ACLANDCF_RESERVED_INTF0_DHCP_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF1_DHCP_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF2_DHCP_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF3_DHCP_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF4_DHCP_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF5_DHCP_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF6_DHCP_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF7_DHCP_TRAP, RTK_RG_ACLANDCF_RESERVED_WIFI_DATAPATH_MASTER2SLAVE_PATCH, //Dual wifi reserved especial vid, pri for datapath(Master=>slave), we translate vid to 1 for avoiding vlan filter & pri to special slave queue. RTK_RG_ACLANDCF_RESERVED_STPBLOCKING, RTK_RG_ACLANDCF_RESERVED_MULTICAST_RMA_TRAP, RTK_RG_ACLANDCF_RESERVED_MULTICAST_SSDP_TRAP, RTK_RG_ACLANDCF_RESERVED_WIFI2_IPC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_BROADCAST_TRAP, RTK_RG_ACLANDCF_RESERVED_ALL_TRAP, RTK_RG_ACLANDCF_RESERVED_UNICAST_TRAP, RTK_RG_ACLANDCF_RESERVED_EXT1_SLAVE_WIFI_TRAP, RTK_RG_ACLANDCF_RESERVED_SYN_PACKET_TRAP, RTK_RG_ACLANDCF_RESERVED_ACK_PACKET_ASSIGN_PRIORITY, RTK_RG_ACLANDCF_RESERVED_PPPoE_LCP_PACKET_ASSIGN_PRIORITY, RTK_RG_ACLANDCF_RESERVED_INTF0_DSLITE_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF1_DSLITE_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF2_DSLITE_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF3_DSLITE_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF4_DSLITE_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF5_DSLITE_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF6_DSLITE_TRAP, RTK_RG_ACLANDCF_RESERVED_INTF7_DSLITE_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPOE_INTF0_MC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPOE_INTF1_MC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPOE_INTF2_MC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPOE_INTF3_MC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPOE_INTF4_MC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPOE_INTF5_MC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPOE_INTF6_MC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPOE_INTF7_MC_ROUTING_TRAP, RTK_RG_ACLANDCF_RESERVED_IPV6_INTF0_LINK_LOCAL_TRAP, RTK_RG_ACLANDCF_RESERVED_IPV6_INTF1_LINK_LOCAL_TRAP, RTK_RG_ACLANDCF_RESERVED_IPV6_INTF2_LINK_LOCAL_TRAP, RTK_RG_ACLANDCF_RESERVED_IPV6_INTF3_LINK_LOCAL_TRAP, RTK_RG_ACLANDCF_RESERVED_IPV6_INTF4_LINK_LOCAL_TRAP, RTK_RG_ACLANDCF_RESERVED_IPV6_INTF5_LINK_LOCAL_TRAP, RTK_RG_ACLANDCF_RESERVED_IPV6_INTF6_LINK_LOCAL_TRAP, RTK_RG_ACLANDCF_RESERVED_IPV6_INTF7_LINK_LOCAL_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE0_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE1_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE2_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE3_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE4_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE5_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE6_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE7_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE8_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE9_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE10_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE11_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE12_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE13_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE14_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE15_DIP_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE0_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE1_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE2_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE3_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE4_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE5_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE6_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE7_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE8_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE9_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE10_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE11_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE12_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE13_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE14_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_RULE15_DIPv6_MASK_TRAP, RTK_RG_ACLANDCF_RESERVED_PORT0_TRAP, RTK_RG_ACLANDCF_RESERVED_PORT1_TRAP, RTK_RG_ACLANDCF_RESERVED_PORT2_TRAP, RTK_RG_ACLANDCF_RESERVED_PORT3_TRAP, RTK_RG_ACLANDCF_RESERVED_PORT4_TRAP, RTK_RG_ACLANDCF_RESERVED_PORT5_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND0_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND1_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND2_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND3_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND4_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND5_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND6_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND7_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND8_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND9_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND10_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND11_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND12_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND13_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND14_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND15_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND16_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND17_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND18_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND19_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND20_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND21_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND22_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND23_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND24_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND25_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND26_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND27_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND28_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND29_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND30_TRAP, RTK_RG_ACLANDCF_RESERVED_VLANBIND31_TRAP, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF0_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF1_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF2_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF3_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF4_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF5_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF6_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF7_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF8_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF9_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF10_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF11_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF12_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF13_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF14_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_INTF15_PERMIT, RTK_RG_ACLANDCF_RESERVED_PPPoE_MULTICAST_DEFAULT_TRAP, RTK_RG_ACLANDCF_RESERVED_HEAD_END, /*TAIL PATCH: The lower index number, the lower acl&cf priority*/ #if 0 RTK_RG_ACLANDCF_RESERVED_URLFILTER_TRAP, #endif RTK_RG_ACLANDCF_RESERVED_IGMP_TO_SLAVE_WIFI_BLOCK, RTK_RG_ACLANDCF_RESERVED_MULTICAST_TRAP_AND_GLOBAL_SCOPE_PERMIT, RTK_RG_ACLANDCF_RESERVED_MULTICAST_VID_TRANSLATE_FOR_IPV6_PASSTHROUGHT, #if 0 RTK_RG_ACLANDCF_RESERVED_MULTICAST_VID_TRANSLATE_FOR_IPV6, RTK_RG_ACLANDCF_RESERVED_MULTICAST_VID_TRANSLATE_FOR_IPV4, #endif RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_TRAP_ALL8863_US8864_DMAC2CVID_DS8864, RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_INTF7ISPPPOEWAN, //pppoe packet to intf7 avoid hit RTK_RG_ACL_RESERVED_PPPoEPASSTHROUGHT_REMARKIN_BY_DMAC2CVID_DOWNSTREAM_ETHTER_8864 RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_INTF6ISPPPOEWAN, //pppoe packet to intf6 avoid hit RTK_RG_ACL_RESERVED_PPPoEPASSTHROUGHT_REMARKIN_BY_DMAC2CVID_DOWNSTREAM_ETHTER_8864 RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_INTF5ISPPPOEWAN, //pppoe packet to intf5 avoid hit RTK_RG_ACL_RESERVED_PPPoEPASSTHROUGHT_REMARKIN_BY_DMAC2CVID_DOWNSTREAM_ETHTER_8864 RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_INTF4ISPPPOEWAN, //pppoe packet to intf4 avoid hit RTK_RG_ACL_RESERVED_PPPoEPASSTHROUGHT_REMARKIN_BY_DMAC2CVID_DOWNSTREAM_ETHTER_8864 RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_INTF3ISPPPOEWAN, //pppoe packet to intf3 avoid hit RTK_RG_ACL_RESERVED_PPPoEPASSTHROUGHT_REMARKIN_BY_DMAC2CVID_DOWNSTREAM_ETHTER_8864 RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_INTF2ISPPPOEWAN, //pppoe packet to intf2 avoid hit RTK_RG_ACL_RESERVED_PPPoEPASSTHROUGHT_REMARKIN_BY_DMAC2CVID_DOWNSTREAM_ETHTER_8864 RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_INTF1ISPPPOEWAN, //pppoe packet to intf1 avoid hit RTK_RG_ACL_RESERVED_PPPoEPASSTHROUGHT_REMARKIN_BY_DMAC2CVID_DOWNSTREAM_ETHTER_8864 RTK_RG_ACLANDCF_RESERVED_PPPoEPASSTHROUGHT_INTF0ISPPPOEWAN, //pppoe packet to intf0 avoid hit RTK_RG_ACL_RESERVED_PPPoEPASSTHROUGHT_REMARKIN_BY_DMAC2CVID_DOWNSTREAM_ETHTER_8864 RTK_RG_ACLANDCF_RESERVED_WIFI_MASTER_EXTPORT_PATCH,//replace src extPort[0](from master) information to egress extPortMask RTK_RG_ACLANDCF_RESERVED_WIFI_SLAVE_EXTPORT_PATCH,//replace src extPort[1](from slave) information to egress extPortMask //#ifdef CONFIG_RG_PPPOE_AND_VALN_ISSUE_PATCH RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_SVIDCOPY2CVID_PATCH, //Wan:PPPoE+Vlan Lan:link-up 100Mbps have parsing bug=> look 0x8100 as stag in wan port, and copy stag to ctag //#endif //#ifdef CONFIG_RG_PPPOE_AND_VALN_ISSUE_PATCH RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_QOSSPRI7REMAPTOINTERNALPRI_PATCH, //Qos remarking pacth for using Stag (SPri[7]=based on Qos API=>internal-priority) RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_QOSSPRI6REMAPTOINTERNALPRI_PATCH, //Qos remarking pacth for using Stag (SPri[6]=based on Qos API=>internal-priority) RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_QOSSPRI5REMAPTOINTERNALPRI_PATCH, //Qos remarking pacth for using Stag (SPri[5]=based on Qos API=>internal-priority) RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_QOSSPRI4REMAPTOINTERNALPRI_PATCH, //Qos remarking pacth for using Stag (SPri[4]=based on Qos API=>internal-priority) RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_QOSSPRI3REMAPTOINTERNALPRI_PATCH, //Qos remarking pacth for using Stag (SPri[3]=based on Qos API=>internal-priority) RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_QOSSPRI2REMAPTOINTERNALPRI_PATCH, //Qos remarking pacth for using Stag (SPri[2]=based on Qos API=>internal-priority) RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_QOSSPRI1REMAPTOINTERNALPRI_PATCH, //Qos remarking pacth for using Stag (SPri[1]=based on Qos API=>internal-priority) RTK_RG_ACLANDCF_RESERVED_PPPoECVIDISSUE_QOSSPRI0REMAPTOINTERNALPRI_PATCH, //Qos remarking pacth for using Stag (SPri[0]=based on Qos API=>internal-priority) //#endif #if 0 RTK_RG_ACLANDCF_RESERVED_PON_INTFDEFAULTSSIDREMAP_PATCH, RTK_RG_ACLANDCF_RESERVED_PON_INTF7SSIDREMAP_PATCH, RTK_RG_ACLANDCF_RESERVED_PON_INTF6SSIDREMAP_PATCH, RTK_RG_ACLANDCF_RESERVED_PON_INTF5SSIDREMAP_PATCH, RTK_RG_ACLANDCF_RESERVED_PON_INTF4SSIDREMAP_PATCH, RTK_RG_ACLANDCF_RESERVED_PON_INTF3SSIDREMAP_PATCH, RTK_RG_ACLANDCF_RESERVED_PON_INTF2SSIDREMAP_PATCH, RTK_RG_ACLANDCF_RESERVED_PON_INTF1SSIDREMAP_PATCH, RTK_RG_ACLANDCF_RESERVED_PON_INTF0SSIDREMAP_PATCH, //FIXME: bits not enough #endif RTK_RG_ACLANDCF_RESERVED_ASSIGN_INGRESS_CVLAN_FOR_SERVICE_PORT0_WITHOUT_FILTER, RTK_RG_ACLANDCF_RESERVED_ASSIGN_INGRESS_CVLAN_FOR_SERVICE_PORT1_WITHOUT_FILTER, RTK_RG_ACLANDCF_RESERVED_ASSIGN_INGRESS_CVLAN_FOR_SERVICE_PORT2_WITHOUT_FILTER, RTK_RG_ACLANDCF_RESERVED_ASSIGN_INGRESS_CVLAN_FOR_SERVICE_PORT3_WITHOUT_FILTER, RTK_RG_ACLANDCF_RESERVED_ASSIGN_INGRESS_CVLAN_FOR_SERVICE_PORT4_WITHOUT_FILTER, RTK_RG_ACLANDCF_RESERVED_ASSIGN_INGRESS_CVLAN_FOR_SERVICE_PORT5_WITHOUT_FILTER, RTK_RG_ACLANDCF_RESERVED_ASSIGN_INGRESS_CVLAN_FOR_SERVICE_PORT6_WITHOUT_FILTER, RTK_RG_ACLANDCF_RESERVED_TAIL_END, }rtk_rg_aclAndCf_reserved_type_t; typedef struct rtk_rg_aclAndCf_reserved_WifiMasterExtportPatch_s { int igrPmsk; int egrPmsk; }rtk_rg_aclAndCf_reserved_WifiMasterExtportPatch_t; typedef struct rtk_rg_aclAndCf_reserved_WifiSlaveExtportPatch_s { int igrPmsk; int egrPmsk; }rtk_rg_aclAndCf_reserved_WifiSlaveExtportPatch_t; typedef struct rtk_rg_aclAndCf_reserved_WifiDatapathMaster2SlavePatch_s { uint32 igrCvid; uint32 igrCpri; uint32 tranCvid; uint32 tranCpri; }rtk_rg_aclAndCf_reserved_WifiDatapathMaster2SlavePatch_t; //#ifdef CONFIG_RG_PPPOE_AND_VALN_ISSUE_PATCH typedef struct rtk_rg_aclAndCf_reserved_pppoeCvidIssueSvidCopy2CvidPatch_s { uint32 wanPort; }rtk_rg_aclAndCf_reserved_pppoeCvidIssueSvidCopy2CvidPatch_t; typedef struct rtk_rg_aclAndCf_reserved_pppoeCvidIssueSpriRemap2InternalPriPatch_s { int wanPort; int spri; int intpri; }rtk_rg_aclAndCf_reserved_pppoeCvidIssueSpriRemap2InternalPriPatch_t; //#endif typedef struct rtk_rg_aclAndCf_reserved_pppoe_lcp_assign_priority_s{ int priority; }rtk_rg_aclAndCf_reserved_pppoe_lcp_assign_priority_t; typedef struct rtk_rg_aclAndCf_reserved_pppoepassthroughtIntfIsPppoewanPatch_s { rtk_mac_t gmac; }rtk_rg_aclAndCf_reserved_pppoepassthroughtIntfIsPppoewanPatch_t; typedef struct rtk_rg_aclAndCf_reserved_pppoepassthroughtDefaulRuletPatch_s { uint32 lanPmsk; uint32 wanPmsk; uint32 remarkVid; }rtk_rg_aclAndCf_reserved_pppoepassthroughtDefaulTrapRuletPatch_t; typedef struct rtk_rg_aclAndCf_reserved_ponIntfSsidRemapPatch_s { int intfIdx; int ssid; int vid; }rtk_rg_aclAndCf_reserved_ponIntfSsidRemapPatch_t; typedef struct rtk_rg_aclAndCf_reserved_multicast_vid_translate_for_ipv4_s{ int vid; }rtk_rg_aclAndCf_reserved_multicastVidTranslateForIpv4_t; typedef struct rtk_rg_aclAndCf_reserved_multicast_vid_translate_for_ipv6_s{ int vid; }rtk_rg_aclAndCf_reserved_multicastVidTranslateForIpv6_t; typedef struct rtk_rg_aclAndCf_reserved_AssignCvlanForServicePortWithoutFilter_s{ int service_port; //physical port which enabled service port ability. int assigned_vid; }rtk_rg_aclAndCf_reserved_AssignCvlanForServicePortWithoutFilter_t; typedef struct rtk_rg_aclAndCf_reserved_intf_dhcp_trap_s{ rtk_mac_t gmac; }rtk_rg_aclAndCf_reserved_intf_dhcp_trap_t; typedef struct rtk_rg_aclAndCf_reserved_intf_dslite_trap_s{ rtk_mac_t smac; rtk_ipv6_addr_t ipv6_dip; }rtk_rg_aclAndCf_reserved_intf_dslite_trap_t; typedef struct rtk_rg_aclAndCf_reserved_pppoe_intf_multicast_routing_trap_s{ rtk_mac_t gmac; }rtk_rg_aclAndCf_reserved_pppoe_intf_multicast_routing_trap_t; typedef struct rtk_rg_aclAndCf_reserved_intf_linkLocal_trap_s{ rtk_mac_t gmac; }rtk_rg_aclAndCf_reserved_intf_linkLocal_trap_t; typedef struct rtk_rg_aclAndCf_reserved_ack_packet_assign_priority_s{ int priority; }rtk_rg_aclAndCf_reserved_ack_packet_assign_priority_t; typedef struct rtk_rg_aclAndCf_reserved_dip_mask_trap_s{ uint32 dip; uint32 mask; }rtk_rg_aclAndCf_reserved_dip_mask_trap_t; typedef struct rtk_rg_aclAndCf_reserved_dipv6_mask_trap_s{ rtk_ipv6_addr_t dipv6; rtk_ipv6_addr_t dipv6_mask; }rtk_rg_aclAndCf_reserved_dipv6_mask_trap_t; typedef struct rtk_rg_aclAndCf_reserved_vlan_bind_trap_s{ uint32 portmask; uint32 vid; }rtk_rg_aclAndCf_reserved_vlan_bind_trap_t; typedef struct rtk_rg_aclAndCf_reserved_pppoe_multicast_intf_permit_s{ rtk_mac_t gmac; }rtk_rg_aclAndCf_reserved_pppoe_multicast_intf_permit_t; typedef struct rtk_rg_aclAndCf_reserved_global_s { uint32 aclLowerBoundary; //The End index of acl reserve rules in the head uint32 aclUpperBoundary; //The start index of acl reserve rules in the tail uint32 cfLowerBoundary; //The start index of cf reserve rules in the head uint32 cfUpperBoundary; //The start index of cf reserve rules in the tail uint8 reservedMask[RTK_RG_ACLANDCF_RESERVED_TAIL_END]; //rtk_rg_aclAndCf_reserved_type_t reservedMask; uint32 acl_MC_temp_permit_idx; //this index is reserved for user ACL rearrange, and reserved by type RTK_RG_ACLANDCF_RESERVED_BROADCAST_TRAP or RTK_RG_ACLANDCF_RESERVED_ALL_TRAP int aclSkipRearrangeIPv4MCPermitIdx;//rsv HW ACL index for multicast permit, used when aclSkipRearrangeHWAclCf==1 int aclSkipRearrangeIPv6MCPermitIdx;//rsv HW ACL index for multicast permit, used when aclSkipRearrangeHWAclCf==1 int aclSkipRearrangeAlltTrapIdx;//rsv HW ACL index for rest all trap, used when aclSkipRearrangeHWAclCf==1 rtk_rg_aclAndCf_reserved_WifiMasterExtportPatch_t wifiMasterExtportPatchPara; rtk_rg_aclAndCf_reserved_WifiSlaveExtportPatch_t wifiSlaveExtportPatchPara; rtk_rg_aclAndCf_reserved_WifiDatapathMaster2SlavePatch_t wifiDadapathM2SPatchPara; //#ifdef CONFIG_RG_PPPOE_AND_VALN_ISSUE_PATCH rtk_rg_aclAndCf_reserved_pppoeCvidIssueSvidCopy2CvidPatch_t pppoeCvidIssueSvid2CvidPatchPara; rtk_rg_aclAndCf_reserved_pppoeCvidIssueSpriRemap2InternalPriPatch_t pppoeCvidIssueSpriRemap2IntpriPara[8]; //each array stand for one spri. //#endif rtk_rg_aclAndCf_reserved_pppoe_lcp_assign_priority_t pppoe_lcp_assign_prioity; rtk_rg_aclAndCf_reserved_pppoepassthroughtIntfIsPppoewanPatch_t pppoepassthroughtIntfIsPppoewanpara[8];//each array stand for one intf.Idx. rtk_rg_aclAndCf_reserved_pppoepassthroughtDefaulTrapRuletPatch_t pppoepassthroughtDefaulTrapRulePatchPara; rtk_rg_aclAndCf_reserved_ponIntfSsidRemapPatch_t ponIntfSsidRemapPatchPara[9];//each array stand for one intf, ponIntfSsidRemapPatchPara[8] stand for default rule. rtk_rg_aclAndCf_reserved_multicastVidTranslateForIpv4_t multicastVidTranslateForIpv4; rtk_rg_aclAndCf_reserved_multicastVidTranslateForIpv6_t multicastVidTranslateForIpv6; rtk_rg_aclAndCf_reserved_AssignCvlanForServicePortWithoutFilter_t assignCvlanForServicePortWithoutFilterPara[7];//each array stand for one port rtk_rg_aclAndCf_reserved_intf_dhcp_trap_t intf_dhcp_trap_para[8]; //each array stand for one intf.Idx. rtk_rg_aclAndCf_reserved_intf_dslite_trap_t intf_dslite_trap_para[8];//each array stand for one intf.Idx. rtk_rg_aclAndCf_reserved_pppoe_intf_multicast_routing_trap_t pppoe_intf_multicast_routing_trap_para[8];//each array stand for one intf.Idx. rtk_rg_aclAndCf_reserved_intf_linkLocal_trap_t intf_link_local_trap_para[8]; //each array stand for one intf.Idx. rtk_rg_aclAndCf_reserved_ack_packet_assign_priority_t ack_packet_assign_priority; rtk_rg_aclAndCf_reserved_dip_mask_trap_t dip_mask_trap[16]; rtk_rg_aclAndCf_reserved_dipv6_mask_trap_t dipv6_mask_trap[16]; rtk_rg_aclAndCf_reserved_vlan_bind_trap_t vlan_bind_trap[32]; rtk_rg_aclAndCf_reserved_pppoe_multicast_intf_permit_t pppoe_multicast_permit[16]; //each array stand for each valid H/W netif entry. }rtk_rg_acl_reserved_global_t; #endif //end of #ifndef RTK_RG_ACL_APOLLO_H