Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / niu / rxc_sat / vera / fflp / include / pkt_configurator_defines.vri
// ========== 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