// ========== Copyright Header Begin ========================================== // // OpenSPARC T2 Processor File: pkt_configurator_defines.vri // Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved // 4150 Network Circle, Santa Clara, California 95054, U.S.A. // // * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; version 2 of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // For the avoidance of doubt, and except that if any non-GPL license // choice is available it will apply instead, Sun elects to use only // the General Public License version 2 (GPLv2) at this time for any // software where a choice of GPL license versions is made // available with the language indicating that GPLv2 or any later version // may be used, or where a choice of which version of the GPL is applied is // otherwise unspecified. // // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, // CA 95054 USA or visit www.sun.com if you need additional information or // have any questions. // // ========== Copyright Header End ============================================ #ifndef __PKT_CONFIGURATOR_DEFINES_VRI__ #define __PKT_CONFIGURATOR_DEFINES_VRI__ #define MAX_DMA_CHAN 16 #define MAX_RDC_TABLE 8 #define INVALID_DMA_NUM 2*MAX_DMA_CHAN-1 #define MAX_DA_1G 8 #define MAX_DA_10G 16 #define MAX_VLAN_ENTRIES 4096 #define MAX_ZCP_RDC_ENTRIES 128 #define MAX_CAM_ENTRIES 128 #define MAX_L3_CLASSES 12 // packet classification encodings #define PATH_NO_CLS_MACRDC_OFFSET0 0 #define PATH_L2_CLS_MACRDC_OFFSET0 1 #define PATH_L2_CLS_MACRDC_CAM_OFFSET0 2 #define PATH_L3_CLS_MACRDC_HASH1_OFFSET 3 #define PATH_L3_CLS_MACRDC_NOEXT_HASH1_OFFSET 4 #define PATH_L3_CLS_MACRDC_EXT_HASH1_OFFSET 5 #define PATH_L3_CLS_MACRDC_CAM_HASH1_OFFSET 6 #define PATH_L3_CLS_MACRDC_CAM_NOEXT_HASH1_OFFSET 7 #define PATH_L3_CLS_MACRDC_CAM_EXT_HASH1_OFFSET 8 #define PATH_NO_CLS_VLNRDC_OFFSET0 9 #define PATH_L2_CLS_VLNRDC_OFFSET0 10 #define PATH_L2_CLS_VLNRDC_CAM_OFFSET0 11 #define PATH_L3_CLS_VLNRDC_HASH1_OFFSET 12 #define PATH_L3_CLS_VLNRDC_NOEXT_HASH1_OFFSET 13 #define PATH_L3_CLS_VLNRDC_EXT_HASH1_OFFSET 14 #define PATH_L3_CLS_VLNRDC_CAM_HASH1_OFFSET 15 #define PATH_L3_CLS_VLNRDC_CAM_NOEXT_HASH1_OFFSET 16 #define PATH_L3_CLS_VLNRDC_CAM_EXT_HASH1_OFFSET 17 #define PATH_L2_CLS_ASCRDC_CAM_OFFSET0 18 #define PATH_L2_CLS_ASCRDC_CAM_ASC_OFFSET 19 #define PATH_L3_CLS_ASCRDC_CAM_ASC_OFFSET 20 #define PATH_L3_CLS_ASCRDC_CAM_HASH1_OFFSET 21 #define PATH_L3_CLS_ASCRDC_NOEXT_HASH1_OFFSET 22 #define PATH_L3_CLS_ASCRDC_EXT_HASH1_OFFSET 23 // tcam key fields for ipv4 and ipv6 #define TCAM_CLS_CODE 199:195 #define IPV4_CAM_CLS_CODE 199:195 #define IPV4_CAM_L2RDC_TBL_NUM 191:187 #define IPV4_CAM_NOPORT 186 #define IPV4_CAM_TOS 111:104 #define IPV4_CAM_PID 103:96 #define IPV4_CAM_L4PT_SPI 95:64 #define IPV4_CAM_L4_SRC_PORT 95:80 #define IPV4_CAM_L4_DST_PORT 79:64 #define IPV4_CAM_IP_ADDR_SA 63:32 #define IPV4_CAM_IP_ADDR_DA 31:0 #define IPV6_CAM_CLS_CODE 199:195 #define IPV6_CAM_L2RDC_TBL_NUM 191:187 #define IPV6_CAM_TOS 175:168 #define IPV6_CAM_NXT_HDR 167:160 #define IPV6_CAM_L4PT_SPI 159:128 #define IPV6_CAM_L4_SRC_PORT 159:144 #define IPV6_CAM_L4_DST_PORT 143:128 #define IPV6_CAM_IP_ADDR 127:0 #define ETHERTYPE_CLS_CODE 199:195 #define ETHERTYPE_EFRAME 191:104 // hash1 flow key lookup defines #define FLOW_KEY_PORT 23:22 #define FLOW_KEY_PID 31:24 #define FLOW_KEY_L4_1 47:32 #define FLOW_KEY_L4_0 63:48 #define FLOW_KEY_IPV4_DA 95:64 #define FLOW_KEY_IPV6_DA 191:64 #define FLOW_KEY_IPV4_SA 223:192 #define FLOW_KEY_IPV6_SA 319:192 #define FLOW_KEY_VLAN_ID 331:320 #define FLOW_KEY_MAC_DA 379:332 #define FLOW_KEY_VLAN_VALID 383:380 #define standard_l2_path0 "0,1," #define standard_l2_path1 "0,2,3," #define standard_l2_path2 "0,2,4,5," #define standard_l2_path3 "0,2,4,6,7," #define standard_l2_path4 "0,2,4,6,8,9," #define standard_l2_path5 "0,2,4,6,8,10," #define standard_l3_path0 "11," #define standard_l3_path1 "12,13,18,19,29," #define standard_l3_path2 "12,13,18,19,30,31," #define standard_l3_path3 "12,13,18,20,21," #define standard_l3_path4 "12,13,18,20,22,23," #define standard_l3_path5 "12,13,18,20,22,24,26," #define standard_l3_path6 "12,13,18,20,22,24,25,27," #define standard_l3_path7 "12,14,15," #define standard_l3_path8 "12,14,16,17,29," #define standard_l3_path9 "12,14,16,17,30,31," #define standard_l3_path10 "12,14,16,18,19,29," #define standard_l3_path11 "12,14,16,18,19,30,31," #define standard_l3_path12 "12,14,16,18,20,21," #define standard_l3_path13 "12,14,16,18,19,20,22,23," #define standard_l3_path14 "12,14,16,18,19,20,22,24,26," #define standard_l3_path15 "12,14,16,18,19,20,22,24,25,27," #define standard_l3_path16 "12,14,16,18,19,20,22,24,25,28,31," #endif