19a5557fdSlucy wang - Sun Microsystems - Beijing China /* 29a5557fdSlucy wang - Sun Microsystems - Beijing China * CDDL HEADER START 39a5557fdSlucy wang - Sun Microsystems - Beijing China * 49a5557fdSlucy wang - Sun Microsystems - Beijing China * The contents of this file are subject to the terms of the 59a5557fdSlucy wang - Sun Microsystems - Beijing China * Common Development and Distribution License (the "License"). 69a5557fdSlucy wang - Sun Microsystems - Beijing China * You may not use this file except in compliance with the License. 79a5557fdSlucy wang - Sun Microsystems - Beijing China * 89a5557fdSlucy wang - Sun Microsystems - Beijing China * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 99a5557fdSlucy wang - Sun Microsystems - Beijing China * or http://www.opensolaris.org/os/licensing. 109a5557fdSlucy wang - Sun Microsystems - Beijing China * See the License for the specific language governing permissions 119a5557fdSlucy wang - Sun Microsystems - Beijing China * and limitations under the License. 129a5557fdSlucy wang - Sun Microsystems - Beijing China * 139a5557fdSlucy wang - Sun Microsystems - Beijing China * When distributing Covered Code, include this CDDL HEADER in each 149a5557fdSlucy wang - Sun Microsystems - Beijing China * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 159a5557fdSlucy wang - Sun Microsystems - Beijing China * If applicable, add the following below this CDDL HEADER, with the 169a5557fdSlucy wang - Sun Microsystems - Beijing China * fields enclosed by brackets "[]" replaced with your own identifying 179a5557fdSlucy wang - Sun Microsystems - Beijing China * information: Portions Copyright [yyyy] [name of copyright owner] 189a5557fdSlucy wang - Sun Microsystems - Beijing China * 199a5557fdSlucy wang - Sun Microsystems - Beijing China * CDDL HEADER END 209a5557fdSlucy wang - Sun Microsystems - Beijing China */ 21*93833965Sjing xiong ERI-SUN 229a5557fdSlucy wang - Sun Microsystems - Beijing China /* 239a5557fdSlucy wang - Sun Microsystems - Beijing China * Copyright 2008 NetXen, Inc. All rights reserved. 249a5557fdSlucy wang - Sun Microsystems - Beijing China * Use is subject to license terms. 259a5557fdSlucy wang - Sun Microsystems - Beijing China */ 269a5557fdSlucy wang - Sun Microsystems - Beijing China /* 279a5557fdSlucy wang - Sun Microsystems - Beijing China * Data types and structure for HAL - NIC interface. 289a5557fdSlucy wang - Sun Microsystems - Beijing China * 299a5557fdSlucy wang - Sun Microsystems - Beijing China */ 309a5557fdSlucy wang - Sun Microsystems - Beijing China 319a5557fdSlucy wang - Sun Microsystems - Beijing China #ifndef _NXHAL_NIC_INTERFACE_H_ 329a5557fdSlucy wang - Sun Microsystems - Beijing China #define _NXHAL_NIC_INTERFACE_H_ 339a5557fdSlucy wang - Sun Microsystems - Beijing China 34*93833965Sjing xiong ERI-SUN #ifdef __cplusplus 35*93833965Sjing xiong ERI-SUN extern "C" { 36*93833965Sjing xiong ERI-SUN #endif 37*93833965Sjing xiong ERI-SUN 389a5557fdSlucy wang - Sun Microsystems - Beijing China /* 399a5557fdSlucy wang - Sun Microsystems - Beijing China * Simple Types 409a5557fdSlucy wang - Sun Microsystems - Beijing China */ 419a5557fdSlucy wang - Sun Microsystems - Beijing China 429a5557fdSlucy wang - Sun Microsystems - Beijing China typedef U32 nx_reg_addr_t; 439a5557fdSlucy wang - Sun Microsystems - Beijing China 449a5557fdSlucy wang - Sun Microsystems - Beijing China /* 459a5557fdSlucy wang - Sun Microsystems - Beijing China * Root crb-based firmware commands 469a5557fdSlucy wang - Sun Microsystems - Beijing China */ 479a5557fdSlucy wang - Sun Microsystems - Beijing China 489a5557fdSlucy wang - Sun Microsystems - Beijing China /* 499a5557fdSlucy wang - Sun Microsystems - Beijing China * CRB Root Command 509a5557fdSlucy wang - Sun Microsystems - Beijing China * A single set of crbs is used across all physical/virtual 519a5557fdSlucy wang - Sun Microsystems - Beijing China * functions for capability queries, initialization, and 529a5557fdSlucy wang - Sun Microsystems - Beijing China * context creation/destruction. 539a5557fdSlucy wang - Sun Microsystems - Beijing China * 549a5557fdSlucy wang - Sun Microsystems - Beijing China * There are 4 CRBS: 559a5557fdSlucy wang - Sun Microsystems - Beijing China * Command/Response CRB 569a5557fdSlucy wang - Sun Microsystems - Beijing China * Argument1 CRB 579a5557fdSlucy wang - Sun Microsystems - Beijing China * Argument2 CRB 589a5557fdSlucy wang - Sun Microsystems - Beijing China * Argument3 CRB 599a5557fdSlucy wang - Sun Microsystems - Beijing China * Signature CRB 609a5557fdSlucy wang - Sun Microsystems - Beijing China * 619a5557fdSlucy wang - Sun Microsystems - Beijing China * The cmd/rsp crb is always intiated by the host via 629a5557fdSlucy wang - Sun Microsystems - Beijing China * a command code and always responded by the card with 639a5557fdSlucy wang - Sun Microsystems - Beijing China * a response code. The cmd and rsp codes are disjoint. 649a5557fdSlucy wang - Sun Microsystems - Beijing China * The sequence of use is always CMD, RSP, CLEAR CMD. 659a5557fdSlucy wang - Sun Microsystems - Beijing China * 669a5557fdSlucy wang - Sun Microsystems - Beijing China * The arguments are for passing in command specific 679a5557fdSlucy wang - Sun Microsystems - Beijing China * and response specific parameters/data. 689a5557fdSlucy wang - Sun Microsystems - Beijing China * 699a5557fdSlucy wang - Sun Microsystems - Beijing China * The signature is composed of a magic value, the 709a5557fdSlucy wang - Sun Microsystems - Beijing China * pci function id, and a command sequence id: 719a5557fdSlucy wang - Sun Microsystems - Beijing China * [7:0] = pci function 729a5557fdSlucy wang - Sun Microsystems - Beijing China * [15:8] = version 739a5557fdSlucy wang - Sun Microsystems - Beijing China * [31:16] = magic of 0xcafe 749a5557fdSlucy wang - Sun Microsystems - Beijing China * 759a5557fdSlucy wang - Sun Microsystems - Beijing China * The pci function allows the card to take correct 769a5557fdSlucy wang - Sun Microsystems - Beijing China * action for the given particular commands. 779a5557fdSlucy wang - Sun Microsystems - Beijing China * The firmware will attempt to detect 789a5557fdSlucy wang - Sun Microsystems - Beijing China * an errant driver that has died while holding 799a5557fdSlucy wang - Sun Microsystems - Beijing China * the root crb hardware lock. Such an error condition 809a5557fdSlucy wang - Sun Microsystems - Beijing China * shows up as the cmd/rsp crb stuck in a non-clear state. 819a5557fdSlucy wang - Sun Microsystems - Beijing China * 829a5557fdSlucy wang - Sun Microsystems - Beijing China * Interface Sequence: 839a5557fdSlucy wang - Sun Microsystems - Beijing China * Host always makes requests and firmware always responds. 849a5557fdSlucy wang - Sun Microsystems - Beijing China * Note that data field is always set prior to command field. 859a5557fdSlucy wang - Sun Microsystems - Beijing China * 869a5557fdSlucy wang - Sun Microsystems - Beijing China * [READ] CMD/RSP CRB ARGUMENT FIELD 879a5557fdSlucy wang - Sun Microsystems - Beijing China * Host grab lock 889a5557fdSlucy wang - Sun Microsystems - Beijing China * Host -> CMD optional parameter 899a5557fdSlucy wang - Sun Microsystems - Beijing China * FW <- (Good) RSP-OK DATA 909a5557fdSlucy wang - Sun Microsystems - Beijing China * FW <- (Fail) RSP-FAIL optional failure code 919a5557fdSlucy wang - Sun Microsystems - Beijing China * Host -> CLEAR 929a5557fdSlucy wang - Sun Microsystems - Beijing China * Host release lock 939a5557fdSlucy wang - Sun Microsystems - Beijing China * 949a5557fdSlucy wang - Sun Microsystems - Beijing China * [WRITE] CMD/RSP CRB ARGUMENT FIELD 959a5557fdSlucy wang - Sun Microsystems - Beijing China * Host grab lock 969a5557fdSlucy wang - Sun Microsystems - Beijing China * Host -> CMD DATA 979a5557fdSlucy wang - Sun Microsystems - Beijing China * FW <- (Good) RSP-OK optional write status 989a5557fdSlucy wang - Sun Microsystems - Beijing China * FW <- (Write) RSP-FAIL optional failure code 999a5557fdSlucy wang - Sun Microsystems - Beijing China * Host -> CLEAR 1009a5557fdSlucy wang - Sun Microsystems - Beijing China * Host release lock 1019a5557fdSlucy wang - Sun Microsystems - Beijing China */ 1029a5557fdSlucy wang - Sun Microsystems - Beijing China 1039a5557fdSlucy wang - Sun Microsystems - Beijing China 1049a5557fdSlucy wang - Sun Microsystems - Beijing China /* 1059a5557fdSlucy wang - Sun Microsystems - Beijing China * CMD/RSP 1069a5557fdSlucy wang - Sun Microsystems - Beijing China */ 1079a5557fdSlucy wang - Sun Microsystems - Beijing China 1089a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_SIGNATURE_TO_PCIFN(sign) ((sign) & 0xff) 1099a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_SIGNATURE_TO_VERSION(sign) (((sign)>>8) & 0xff) 1109a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_SIGNATURE_TO_MAGIC(sign) (((sign)>>16) & 0xffff) 1119a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_SIGNATURE_VALID(sign) \ 1129a5557fdSlucy wang - Sun Microsystems - Beijing China (NX_CDRP_SIGNATURE_TO_MAGIC(sign) == 0xcafe && \ 1139a5557fdSlucy wang - Sun Microsystems - Beijing China NX_CDRP_SIGNATURE_TO_PCIFN(sign) < 8) 1149a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_SIGNATURE_MAKE(pcifn, version) \ 1159a5557fdSlucy wang - Sun Microsystems - Beijing China (((pcifn) & 0xff) | \ 1169a5557fdSlucy wang - Sun Microsystems - Beijing China (((version) & 0xff) << 8) | \ 1179a5557fdSlucy wang - Sun Microsystems - Beijing China ((u32)0xcafe << 16)) 1189a5557fdSlucy wang - Sun Microsystems - Beijing China 1199a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CLEAR 0x00000000 1209a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_BIT 0x80000000 1219a5557fdSlucy wang - Sun Microsystems - Beijing China 1229a5557fdSlucy wang - Sun Microsystems - Beijing China /* 1239a5557fdSlucy wang - Sun Microsystems - Beijing China * All responses must have the NX_CDRP_CMD_BIT cleared 1249a5557fdSlucy wang - Sun Microsystems - Beijing China * in the crb NX_CDRP_CRB_OFFSET. 1259a5557fdSlucy wang - Sun Microsystems - Beijing China */ 1269a5557fdSlucy wang - Sun Microsystems - Beijing China 1279a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_FORM_RSP(rsp) (rsp) 1289a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_IS_RSP(rsp) (((rsp) & NX_CDRP_CMD_BIT) == 0) 1299a5557fdSlucy wang - Sun Microsystems - Beijing China 1309a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_RSP_OK 0x00000001 1319a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_RSP_FAIL 0x00000002 1329a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_RSP_TIMEOUT 0x00000003 1339a5557fdSlucy wang - Sun Microsystems - Beijing China 1349a5557fdSlucy wang - Sun Microsystems - Beijing China /* 1359a5557fdSlucy wang - Sun Microsystems - Beijing China * All commands must have the NX_CDRP_CMD_BIT set in 1369a5557fdSlucy wang - Sun Microsystems - Beijing China * the crb NX_CDRP_CRB_OFFSET. 1379a5557fdSlucy wang - Sun Microsystems - Beijing China * The macros below do not have it explicitly set to 1389a5557fdSlucy wang - Sun Microsystems - Beijing China * allow their use in lookup tables 1399a5557fdSlucy wang - Sun Microsystems - Beijing China */ 1409a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_FORM_CMD(cmd) (NX_CDRP_CMD_BIT | (cmd)) 1419a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_IS_CMD(cmd) (((cmd) & NX_CDRP_CMD_BIT) != 0) 1429a5557fdSlucy wang - Sun Microsystems - Beijing China 1439a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] Capability Vector [RSP] Capability Vector */ 1449a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_SUBMIT_CAPABILITIES 0x00000001 1459a5557fdSlucy wang - Sun Microsystems - Beijing China 1469a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] - [RSP] Query Value */ 1479a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_READ_MAX_RDS_PER_CTX 0x00000002 1489a5557fdSlucy wang - Sun Microsystems - Beijing China 1499a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] - [RSP] Query Value */ 1509a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_READ_MAX_SDS_PER_CTX 0x00000003 1519a5557fdSlucy wang - Sun Microsystems - Beijing China 1529a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] - [RSP] Query Value */ 1539a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_READ_MAX_RULES_PER_CTX 0x00000004 1549a5557fdSlucy wang - Sun Microsystems - Beijing China 1559a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] - [RSP] Query Value */ 1569a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_READ_MAX_RX_CTX 0x00000005 1579a5557fdSlucy wang - Sun Microsystems - Beijing China 1589a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] - [RSP] Query Value */ 1599a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_READ_MAX_TX_CTX 0x00000006 1609a5557fdSlucy wang - Sun Microsystems - Beijing China 1619a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] Rx Config DMA Addr [RSP] rcode */ 1629a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_CREATE_RX_CTX 0x00000007 1639a5557fdSlucy wang - Sun Microsystems - Beijing China 1649a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] Rx Context Handle, Reset Kind [RSP] rcode */ 1659a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_DESTROY_RX_CTX 0x00000008 1669a5557fdSlucy wang - Sun Microsystems - Beijing China 1679a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] Tx Config DMA Addr [RSP] rcode */ 1689a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_CREATE_TX_CTX 0x00000009 1699a5557fdSlucy wang - Sun Microsystems - Beijing China 1709a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] Tx Context Handle, Reset Kind [RSP] rcode */ 1719a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_DESTROY_TX_CTX 0x0000000a 1729a5557fdSlucy wang - Sun Microsystems - Beijing China 1739a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] Stat setup dma addr - [RSP] Handle, rcode */ 1749a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_SETUP_STATISTICS 0x0000000e 1759a5557fdSlucy wang - Sun Microsystems - Beijing China 1769a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] Handle - [RSP] rcode */ 1779a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_GET_STATISTICS 0x0000000f 1789a5557fdSlucy wang - Sun Microsystems - Beijing China 1799a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] Handle - [RSP] rcode */ 1809a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_DELETE_STATISTICS 0x00000010 1819a5557fdSlucy wang - Sun Microsystems - Beijing China 1829a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] - [RSP] rcode */ 1839a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_GEN_INT 0x00000011 1849a5557fdSlucy wang - Sun Microsystems - Beijing China 1859a5557fdSlucy wang - Sun Microsystems - Beijing China /* [CMD] MTU - [RSP] rcode */ 1869a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_SET_MTU 0x00000012 1879a5557fdSlucy wang - Sun Microsystems - Beijing China 1889a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CDRP_CMD_MAX 0x00000013 1899a5557fdSlucy wang - Sun Microsystems - Beijing China 1909a5557fdSlucy wang - Sun Microsystems - Beijing China /* 1919a5557fdSlucy wang - Sun Microsystems - Beijing China * Capabilities 1929a5557fdSlucy wang - Sun Microsystems - Beijing China */ 1939a5557fdSlucy wang - Sun Microsystems - Beijing China 1949a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP_BIT(class, bit) (1 << bit) 1959a5557fdSlucy wang - Sun Microsystems - Beijing China 1969a5557fdSlucy wang - Sun Microsystems - Beijing China /* Class 0 (i.e. ARGS 1) */ 1979a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_LEGACY_CONTEXT NX_CAP_BIT(0, 0) 1989a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_MULTI_CONTEXT NX_CAP_BIT(0, 1) 1999a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_LEGACY_MN NX_CAP_BIT(0, 2) 2009a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_LEGACY_MS NX_CAP_BIT(0, 3) 2019a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_CUT_THROUGH NX_CAP_BIT(0, 4) 2029a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_LRO NX_CAP_BIT(0, 5) 2039a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_LSO NX_CAP_BIT(0, 6) 2049a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_JUMBO_CONTIGUOUS NX_CAP_BIT(0, 7) 2059a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP0_LRO_CONTIGUOUS NX_CAP_BIT(0, 8) 2069a5557fdSlucy wang - Sun Microsystems - Beijing China 2079a5557fdSlucy wang - Sun Microsystems - Beijing China /* Class 1 (i.e. ARGS 2) */ 2089a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP1_NIC NX_CAP_BIT(1, 0) 2099a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP1_PXE NX_CAP_BIT(1, 1) 2109a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP1_CHIMNEY NX_CAP_BIT(1, 2) 2119a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP1_LSA NX_CAP_BIT(1, 3) 2129a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP1_RDMA NX_CAP_BIT(1, 4) 2139a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP1_ISCSI NX_CAP_BIT(1, 5) 2149a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_CAP1_FCOE NX_CAP_BIT(1, 6) 2159a5557fdSlucy wang - Sun Microsystems - Beijing China 2169a5557fdSlucy wang - Sun Microsystems - Beijing China /* Class 2 (i.e. ARGS 3) */ 2179a5557fdSlucy wang - Sun Microsystems - Beijing China 2189a5557fdSlucy wang - Sun Microsystems - Beijing China /* 2199a5557fdSlucy wang - Sun Microsystems - Beijing China * Rules 2209a5557fdSlucy wang - Sun Microsystems - Beijing China */ 2219a5557fdSlucy wang - Sun Microsystems - Beijing China 2229a5557fdSlucy wang - Sun Microsystems - Beijing China typedef U32 nx_rx_rule_type_t; 2239a5557fdSlucy wang - Sun Microsystems - Beijing China 2249a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULETYPE_DEFAULT 0 2259a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULETYPE_MAC 1 2269a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULETYPE_MAC_VLAN 2 2279a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULETYPE_MAC_RSS 3 2289a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULETYPE_MAC_VLAN_RSS 4 2299a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULETYPE_MAX 5 2309a5557fdSlucy wang - Sun Microsystems - Beijing China 2319a5557fdSlucy wang - Sun Microsystems - Beijing China typedef U32 nx_rx_rule_cmd_t; 2329a5557fdSlucy wang - Sun Microsystems - Beijing China 2339a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULECMD_ADD 0 2349a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULECMD_REMOVE 1 2359a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RX_RULECMD_MAX 2 2369a5557fdSlucy wang - Sun Microsystems - Beijing China 2379a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_rx_rule_arg_s { 2389a5557fdSlucy wang - Sun Microsystems - Beijing China union { 2399a5557fdSlucy wang - Sun Microsystems - Beijing China struct { 2409a5557fdSlucy wang - Sun Microsystems - Beijing China char mac[6]; 2419a5557fdSlucy wang - Sun Microsystems - Beijing China } m; 2429a5557fdSlucy wang - Sun Microsystems - Beijing China struct { 2439a5557fdSlucy wang - Sun Microsystems - Beijing China char mac[6]; 2449a5557fdSlucy wang - Sun Microsystems - Beijing China char vlan; 2459a5557fdSlucy wang - Sun Microsystems - Beijing China } mv; 2469a5557fdSlucy wang - Sun Microsystems - Beijing China struct { 2479a5557fdSlucy wang - Sun Microsystems - Beijing China char mac[6]; 2489a5557fdSlucy wang - Sun Microsystems - Beijing China } mr; 2499a5557fdSlucy wang - Sun Microsystems - Beijing China struct { 2509a5557fdSlucy wang - Sun Microsystems - Beijing China char mac[6]; 2519a5557fdSlucy wang - Sun Microsystems - Beijing China char vlan; 2529a5557fdSlucy wang - Sun Microsystems - Beijing China } mvr; 2539a5557fdSlucy wang - Sun Microsystems - Beijing China } s1; 2549a5557fdSlucy wang - Sun Microsystems - Beijing China /* will be union of all the different args for rules */ 2559a5557fdSlucy wang - Sun Microsystems - Beijing China U64 data; 2569a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_rx_rule_arg_t; 2579a5557fdSlucy wang - Sun Microsystems - Beijing China 2589a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_rx_rule_s { 2599a5557fdSlucy wang - Sun Microsystems - Beijing China U32 id; 2609a5557fdSlucy wang - Sun Microsystems - Beijing China U32 active; 2619a5557fdSlucy wang - Sun Microsystems - Beijing China nx_rx_rule_arg_t arg; 2629a5557fdSlucy wang - Sun Microsystems - Beijing China nx_rx_rule_type_t type; 2639a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_rx_rule_t; 2649a5557fdSlucy wang - Sun Microsystems - Beijing China 2659a5557fdSlucy wang - Sun Microsystems - Beijing China /* MSG - REQUIRES TX CONTEXT */ 2669a5557fdSlucy wang - Sun Microsystems - Beijing China 2679a5557fdSlucy wang - Sun Microsystems - Beijing China /* 2689a5557fdSlucy wang - Sun Microsystems - Beijing China * The rules can be added/deleted from both the 2699a5557fdSlucy wang - Sun Microsystems - Beijing China * host and card sides so rq/rsp are similar. 2709a5557fdSlucy wang - Sun Microsystems - Beijing China */ 2719a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_hostmsg_rx_rule_s { 2729a5557fdSlucy wang - Sun Microsystems - Beijing China nx_rx_rule_cmd_t cmd; 2739a5557fdSlucy wang - Sun Microsystems - Beijing China nx_rx_rule_t rule; 2749a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_hostmsg_rx_rule_t; 2759a5557fdSlucy wang - Sun Microsystems - Beijing China 2769a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_cardmsg_rx_rule_s { 2779a5557fdSlucy wang - Sun Microsystems - Beijing China nx_rcode_t rcode; 2789a5557fdSlucy wang - Sun Microsystems - Beijing China nx_rx_rule_cmd_t cmd; 2799a5557fdSlucy wang - Sun Microsystems - Beijing China nx_rx_rule_t rule; 2809a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_cardmsg_rx_rule_t; 2819a5557fdSlucy wang - Sun Microsystems - Beijing China 2829a5557fdSlucy wang - Sun Microsystems - Beijing China 2839a5557fdSlucy wang - Sun Microsystems - Beijing China /* 2849a5557fdSlucy wang - Sun Microsystems - Beijing China * Common to Rx/Tx contexts 2859a5557fdSlucy wang - Sun Microsystems - Beijing China */ 2869a5557fdSlucy wang - Sun Microsystems - Beijing China 2879a5557fdSlucy wang - Sun Microsystems - Beijing China /* 2889a5557fdSlucy wang - Sun Microsystems - Beijing China * Context states 2899a5557fdSlucy wang - Sun Microsystems - Beijing China */ 2909a5557fdSlucy wang - Sun Microsystems - Beijing China 2919a5557fdSlucy wang - Sun Microsystems - Beijing China typedef U32 nx_host_ctx_state_t; 2929a5557fdSlucy wang - Sun Microsystems - Beijing China 2939a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_CTX_STATE_FREED 0 /* Invalid state */ 2949a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_CTX_STATE_ALLOCATED 1 /* Not committed */ 2959a5557fdSlucy wang - Sun Microsystems - Beijing China /* The following states imply FW is aware of context */ 2969a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_CTX_STATE_ACTIVE 2 2979a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_CTX_STATE_DISABLED 3 2989a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_CTX_STATE_QUIESCED 4 2999a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_CTX_STATE_MAX 5 3009a5557fdSlucy wang - Sun Microsystems - Beijing China 3019a5557fdSlucy wang - Sun Microsystems - Beijing China /* 3029a5557fdSlucy wang - Sun Microsystems - Beijing China * Interrupt mask crb use must be set identically on the Tx 3039a5557fdSlucy wang - Sun Microsystems - Beijing China * and Rx context configs across a pci function 3049a5557fdSlucy wang - Sun Microsystems - Beijing China */ 3059a5557fdSlucy wang - Sun Microsystems - Beijing China 3069a5557fdSlucy wang - Sun Microsystems - Beijing China /* Rx and Tx have unique interrupt/crb */ 3079a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_INT_CRB_MODE_UNIQUE 0 3089a5557fdSlucy wang - Sun Microsystems - Beijing China /* Rx and Tx share a common interrupt/crb */ 3099a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_INT_CRB_MODE_SHARED 1 /* <= LEGACY */ 3109a5557fdSlucy wang - Sun Microsystems - Beijing China /* Rx does not use a crb */ 3119a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_INT_CRB_MODE_NORX 2 3129a5557fdSlucy wang - Sun Microsystems - Beijing China /* Tx does not use a crb */ 3139a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_INT_CRB_MODE_NOTX 3 3149a5557fdSlucy wang - Sun Microsystems - Beijing China /* Neither Rx nor Tx use a crb */ 3159a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_INT_CRB_MODE_NORXTX 4 3169a5557fdSlucy wang - Sun Microsystems - Beijing China 3179a5557fdSlucy wang - Sun Microsystems - Beijing China /* 3189a5557fdSlucy wang - Sun Microsystems - Beijing China * Destroy Rx/Tx 3199a5557fdSlucy wang - Sun Microsystems - Beijing China */ 3209a5557fdSlucy wang - Sun Microsystems - Beijing China 3219a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_DESTROY_CTX_RESET 0 3229a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_DESTROY_CTX_D3_RESET 1 3239a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_DESTROY_CTX_MAX 2 3249a5557fdSlucy wang - Sun Microsystems - Beijing China 3259a5557fdSlucy wang - Sun Microsystems - Beijing China 3269a5557fdSlucy wang - Sun Microsystems - Beijing China /* 3279a5557fdSlucy wang - Sun Microsystems - Beijing China * Tx 3289a5557fdSlucy wang - Sun Microsystems - Beijing China */ 3299a5557fdSlucy wang - Sun Microsystems - Beijing China 3309a5557fdSlucy wang - Sun Microsystems - Beijing China /* 3319a5557fdSlucy wang - Sun Microsystems - Beijing China * Components of the host-request for Tx context creation. 3329a5557fdSlucy wang - Sun Microsystems - Beijing China * CRB - DOES NOT REQUIRE Rx/TX CONTEXT 3339a5557fdSlucy wang - Sun Microsystems - Beijing China */ 3349a5557fdSlucy wang - Sun Microsystems - Beijing China 3359a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_hostrq_cds_ring_s { 3369a5557fdSlucy wang - Sun Microsystems - Beijing China U64 host_phys_addr; /* Ring base addr */ 3379a5557fdSlucy wang - Sun Microsystems - Beijing China U32 ring_size; /* Ring entries */ 3389a5557fdSlucy wang - Sun Microsystems - Beijing China U32 rsvd; /* Padding */ 3399a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_hostrq_cds_ring_t; 3409a5557fdSlucy wang - Sun Microsystems - Beijing China 3419a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_hostrq_tx_ctx_s { 3429a5557fdSlucy wang - Sun Microsystems - Beijing China U64 host_rsp_dma_addr; /* Response dma'd here */ 3439a5557fdSlucy wang - Sun Microsystems - Beijing China U64 cmd_cons_dma_addr; /* */ 3449a5557fdSlucy wang - Sun Microsystems - Beijing China U64 dummy_dma_addr; /* */ 3459a5557fdSlucy wang - Sun Microsystems - Beijing China U32 capabilities[4]; /* Flag bit vector */ 3469a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_int_crb_mode; /* Interrupt crb usage */ 3479a5557fdSlucy wang - Sun Microsystems - Beijing China U32 rsvd1; /* Padding */ 3489a5557fdSlucy wang - Sun Microsystems - Beijing China U16 rsvd2; /* Padding */ 3499a5557fdSlucy wang - Sun Microsystems - Beijing China U16 interrupt_ctl; 3509a5557fdSlucy wang - Sun Microsystems - Beijing China U16 msi_index; 3519a5557fdSlucy wang - Sun Microsystems - Beijing China U16 rsvd3; /* Padding */ 3529a5557fdSlucy wang - Sun Microsystems - Beijing China nx_hostrq_cds_ring_t cds_ring; /* Desc of cds ring */ 3539a5557fdSlucy wang - Sun Microsystems - Beijing China U8 reserved[128]; /* future expansion */ 3549a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_hostrq_tx_ctx_t; 3559a5557fdSlucy wang - Sun Microsystems - Beijing China 3569a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_cardrsp_cds_ring_s { 3579a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_producer_crb; /* Crb to use */ 3589a5557fdSlucy wang - Sun Microsystems - Beijing China U32 interrupt_crb; /* Crb to use */ 3599a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_cardrsp_cds_ring_t; 3609a5557fdSlucy wang - Sun Microsystems - Beijing China 3619a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_cardrsp_tx_ctx_s { 3629a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_ctx_state; /* Starting state */ 3639a5557fdSlucy wang - Sun Microsystems - Beijing China U16 context_id; /* Handle for context */ 3649a5557fdSlucy wang - Sun Microsystems - Beijing China U8 phys_port; /* Physical id of port */ 3659a5557fdSlucy wang - Sun Microsystems - Beijing China U8 virt_port; /* Virtual/Logical id of port */ 3669a5557fdSlucy wang - Sun Microsystems - Beijing China nx_cardrsp_cds_ring_t cds_ring; /* Card cds settings */ 3679a5557fdSlucy wang - Sun Microsystems - Beijing China U8 reserved[128]; /* future expansion */ 3689a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_cardrsp_tx_ctx_t; 3699a5557fdSlucy wang - Sun Microsystems - Beijing China 3709a5557fdSlucy wang - Sun Microsystems - Beijing China #define SIZEOF_HOSTRQ_TX(HOSTRQ_TX) \ 3719a5557fdSlucy wang - Sun Microsystems - Beijing China (sizeof (HOSTRQ_TX)) 3729a5557fdSlucy wang - Sun Microsystems - Beijing China 3739a5557fdSlucy wang - Sun Microsystems - Beijing China #define SIZEOF_CARDRSP_TX(CARDRSP_TX) \ 3749a5557fdSlucy wang - Sun Microsystems - Beijing China (sizeof (CARDRSP_TX)) 3759a5557fdSlucy wang - Sun Microsystems - Beijing China 3769a5557fdSlucy wang - Sun Microsystems - Beijing China /* 3779a5557fdSlucy wang - Sun Microsystems - Beijing China * Rx 3789a5557fdSlucy wang - Sun Microsystems - Beijing China */ 3799a5557fdSlucy wang - Sun Microsystems - Beijing China 3809a5557fdSlucy wang - Sun Microsystems - Beijing China /* 3819a5557fdSlucy wang - Sun Microsystems - Beijing China * RDS ring mapping to producer crbs 3829a5557fdSlucy wang - Sun Microsystems - Beijing China */ 3839a5557fdSlucy wang - Sun Microsystems - Beijing China 3849a5557fdSlucy wang - Sun Microsystems - Beijing China /* Each ring has a unique crb */ 3859a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_RDS_CRB_MODE_UNIQUE 0 /* <= LEGACY */ 3869a5557fdSlucy wang - Sun Microsystems - Beijing China 3879a5557fdSlucy wang - Sun Microsystems - Beijing China /* 3889a5557fdSlucy wang - Sun Microsystems - Beijing China * All configured RDS Rings share common crb: 3899a5557fdSlucy wang - Sun Microsystems - Beijing China * 1 Ring - same as unique 3909a5557fdSlucy wang - Sun Microsystems - Beijing China * 2 Rings - 16, 16 3919a5557fdSlucy wang - Sun Microsystems - Beijing China * 3 Rings - 10, 10, 10 3929a5557fdSlucy wang - Sun Microsystems - Beijing China */ 3939a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_RDS_CRB_MODE_SHARED 1 3949a5557fdSlucy wang - Sun Microsystems - Beijing China 3959a5557fdSlucy wang - Sun Microsystems - Beijing China /* 3969a5557fdSlucy wang - Sun Microsystems - Beijing China * Bit usage is specified per-ring using the 3979a5557fdSlucy wang - Sun Microsystems - Beijing China * ring's size. Sum of bit lengths must be <= 32. 3989a5557fdSlucy wang - Sun Microsystems - Beijing China * Packing is [Ring N] ... [Ring 1][Ring 0] 3999a5557fdSlucy wang - Sun Microsystems - Beijing China */ 4009a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_RDS_CRB_MODE_CUSTOM 2 4019a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_HOST_RDS_CRB_MODE_MAX 3 4029a5557fdSlucy wang - Sun Microsystems - Beijing China 4039a5557fdSlucy wang - Sun Microsystems - Beijing China 4049a5557fdSlucy wang - Sun Microsystems - Beijing China /* 4059a5557fdSlucy wang - Sun Microsystems - Beijing China * RDS Ting Types 4069a5557fdSlucy wang - Sun Microsystems - Beijing China */ 4079a5557fdSlucy wang - Sun Microsystems - Beijing China 4089a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RDS_RING_TYPE_NORMAL 0 4099a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RDS_RING_TYPE_JUMBO 1 4109a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RDS_RING_TYPE_LRO 2 4119a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_RDS_RING_TYPE_MAX 3 4129a5557fdSlucy wang - Sun Microsystems - Beijing China 4139a5557fdSlucy wang - Sun Microsystems - Beijing China /* 4149a5557fdSlucy wang - Sun Microsystems - Beijing China * Components of the host-request for Rx context creation. 4159a5557fdSlucy wang - Sun Microsystems - Beijing China * CRB - DOES NOT REQUIRE Rx/TX CONTEXT 4169a5557fdSlucy wang - Sun Microsystems - Beijing China */ 4179a5557fdSlucy wang - Sun Microsystems - Beijing China 4189a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_hostrq_sds_ring_s { 4199a5557fdSlucy wang - Sun Microsystems - Beijing China U64 host_phys_addr; /* Ring base addr */ 4209a5557fdSlucy wang - Sun Microsystems - Beijing China U32 ring_size; /* Ring entries */ 4219a5557fdSlucy wang - Sun Microsystems - Beijing China U16 msi_index; 4229a5557fdSlucy wang - Sun Microsystems - Beijing China U16 rsvd; /* Padding */ 4239a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_hostrq_sds_ring_t; 4249a5557fdSlucy wang - Sun Microsystems - Beijing China 4259a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_hostrq_rds_ring_s { 4269a5557fdSlucy wang - Sun Microsystems - Beijing China U64 host_phys_addr; /* Ring base addr */ 4279a5557fdSlucy wang - Sun Microsystems - Beijing China U64 buff_size; /* Packet buffer size */ 4289a5557fdSlucy wang - Sun Microsystems - Beijing China U32 ring_size; /* Ring entries */ 4299a5557fdSlucy wang - Sun Microsystems - Beijing China U32 ring_kind; /* Class of ring */ 4309a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_hostrq_rds_ring_t; 4319a5557fdSlucy wang - Sun Microsystems - Beijing China 4329a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_hostrq_rx_ctx_s { 4339a5557fdSlucy wang - Sun Microsystems - Beijing China U64 host_rsp_dma_addr; /* Response dma'd here */ 4349a5557fdSlucy wang - Sun Microsystems - Beijing China U32 capabilities[4]; /* Flag bit vector */ 4359a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_int_crb_mode; /* Interrupt crb usage */ 4369a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_rds_crb_mode; /* RDS crb usage */ 437*93833965Sjing xiong ERI-SUN /* These ring offsets are relative to end of structure */ 4389a5557fdSlucy wang - Sun Microsystems - Beijing China U32 rds_ring_offset; /* Offset to RDS config */ 4399a5557fdSlucy wang - Sun Microsystems - Beijing China U32 sds_ring_offset; /* Offset to SDS config */ 4409a5557fdSlucy wang - Sun Microsystems - Beijing China U16 num_rds_rings; /* Count of RDS rings */ 4419a5557fdSlucy wang - Sun Microsystems - Beijing China U16 num_sds_rings; /* Count of SDS rings */ 4429a5557fdSlucy wang - Sun Microsystems - Beijing China U16 rsvd1; /* Padding */ 4439a5557fdSlucy wang - Sun Microsystems - Beijing China U16 rsvd2; /* Padding */ 4449a5557fdSlucy wang - Sun Microsystems - Beijing China U8 reserved[128]; /* reserve space for future expansion */ 4459a5557fdSlucy wang - Sun Microsystems - Beijing China /* 4469a5557fdSlucy wang - Sun Microsystems - Beijing China * MUST BE 64-bit aligned. 4479a5557fdSlucy wang - Sun Microsystems - Beijing China * The following is packed: 4489a5557fdSlucy wang - Sun Microsystems - Beijing China * - N hostrq_rds_rings 4499a5557fdSlucy wang - Sun Microsystems - Beijing China * - N hostrq_sds_rings 4509a5557fdSlucy wang - Sun Microsystems - Beijing China */ 4519a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_hostrq_rx_ctx_t; 4529a5557fdSlucy wang - Sun Microsystems - Beijing China 4539a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_cardrsp_rds_ring_s { 4549a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_producer_crb; /* Crb to use */ 4559a5557fdSlucy wang - Sun Microsystems - Beijing China U32 rsvd1; /* Padding */ 4569a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_cardrsp_rds_ring_t; 4579a5557fdSlucy wang - Sun Microsystems - Beijing China 4589a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_cardrsp_sds_ring_s { 4599a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_consumer_crb; /* Crb to use */ 4609a5557fdSlucy wang - Sun Microsystems - Beijing China U32 interrupt_crb; /* Crb to use */ 4619a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_cardrsp_sds_ring_t; 4629a5557fdSlucy wang - Sun Microsystems - Beijing China 4639a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_cardrsp_rx_ctx_s { 464*93833965Sjing xiong ERI-SUN /* These ring offsets are relative to end of structure */ 4659a5557fdSlucy wang - Sun Microsystems - Beijing China U32 rds_ring_offset; /* Offset to RDS config */ 4669a5557fdSlucy wang - Sun Microsystems - Beijing China U32 sds_ring_offset; /* Offset to SDS config */ 4679a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_ctx_state; /* Starting State */ 4689a5557fdSlucy wang - Sun Microsystems - Beijing China U32 num_fn_per_port; /* How many PCI fn share the port */ 4699a5557fdSlucy wang - Sun Microsystems - Beijing China U16 num_rds_rings; /* Count of RDS rings */ 4709a5557fdSlucy wang - Sun Microsystems - Beijing China U16 num_sds_rings; /* Count of SDS rings */ 4719a5557fdSlucy wang - Sun Microsystems - Beijing China U16 context_id; /* Handle for context */ 4729a5557fdSlucy wang - Sun Microsystems - Beijing China U8 phys_port; /* Physical id of port */ 4739a5557fdSlucy wang - Sun Microsystems - Beijing China U8 virt_port; /* Virtual/Logical id of port */ 4749a5557fdSlucy wang - Sun Microsystems - Beijing China U8 reserved[128]; /* save space for future expansion */ 4759a5557fdSlucy wang - Sun Microsystems - Beijing China /* 4769a5557fdSlucy wang - Sun Microsystems - Beijing China * MUST BE 64-bit aligned. 4779a5557fdSlucy wang - Sun Microsystems - Beijing China * The following is packed: 4789a5557fdSlucy wang - Sun Microsystems - Beijing China * - N cardrsp_rds_rings 4799a5557fdSlucy wang - Sun Microsystems - Beijing China * - N cardrs_sds_rings 4809a5557fdSlucy wang - Sun Microsystems - Beijing China */ 4819a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_cardrsp_rx_ctx_t; 4829a5557fdSlucy wang - Sun Microsystems - Beijing China 4839a5557fdSlucy wang - Sun Microsystems - Beijing China #define SIZEOF_HOSTRQ_RX(HOSTRQ_RX, rds_rings, sds_rings) \ 4849a5557fdSlucy wang - Sun Microsystems - Beijing China (sizeof (HOSTRQ_RX) + \ 4859a5557fdSlucy wang - Sun Microsystems - Beijing China (rds_rings)*(sizeof (nx_hostrq_rds_ring_t)) + \ 4869a5557fdSlucy wang - Sun Microsystems - Beijing China (sds_rings)*(sizeof (nx_hostrq_sds_ring_t))) 4879a5557fdSlucy wang - Sun Microsystems - Beijing China 4889a5557fdSlucy wang - Sun Microsystems - Beijing China #define SIZEOF_CARDRSP_RX(CARDRSP_RX, rds_rings, sds_rings) \ 4899a5557fdSlucy wang - Sun Microsystems - Beijing China (sizeof (CARDRSP_RX) + \ 4909a5557fdSlucy wang - Sun Microsystems - Beijing China (rds_rings)*(sizeof (nx_cardrsp_rds_ring_t)) + \ 4919a5557fdSlucy wang - Sun Microsystems - Beijing China (sds_rings)*(sizeof (nx_cardrsp_sds_ring_t))) 4929a5557fdSlucy wang - Sun Microsystems - Beijing China 4939a5557fdSlucy wang - Sun Microsystems - Beijing China 4949a5557fdSlucy wang - Sun Microsystems - Beijing China /* 4959a5557fdSlucy wang - Sun Microsystems - Beijing China * Statistics 4969a5557fdSlucy wang - Sun Microsystems - Beijing China */ 4979a5557fdSlucy wang - Sun Microsystems - Beijing China 4989a5557fdSlucy wang - Sun Microsystems - Beijing China /* 4999a5557fdSlucy wang - Sun Microsystems - Beijing China * The model of statistics update to use 5009a5557fdSlucy wang - Sun Microsystems - Beijing China */ 5019a5557fdSlucy wang - Sun Microsystems - Beijing China 5029a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_MODE_INVALID 0 5039a5557fdSlucy wang - Sun Microsystems - Beijing China 5049a5557fdSlucy wang - Sun Microsystems - Beijing China /* 5059a5557fdSlucy wang - Sun Microsystems - Beijing China * Permanent setup; Updates are only sent on explicit request 5069a5557fdSlucy wang - Sun Microsystems - Beijing China * NX_CDRP_CMD_GET_STATISTICS) 5079a5557fdSlucy wang - Sun Microsystems - Beijing China */ 5089a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_MODE_PULL 1 5099a5557fdSlucy wang - Sun Microsystems - Beijing China 5109a5557fdSlucy wang - Sun Microsystems - Beijing China /* 5119a5557fdSlucy wang - Sun Microsystems - Beijing China * Permanent setup; Updates are sent automatically and on 5129a5557fdSlucy wang - Sun Microsystems - Beijing China * explicit request (NX_CDRP_CMD_GET_STATISTICS) 5139a5557fdSlucy wang - Sun Microsystems - Beijing China */ 5149a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_MODE_PUSH 2 5159a5557fdSlucy wang - Sun Microsystems - Beijing China 5169a5557fdSlucy wang - Sun Microsystems - Beijing China /* One time stat update. */ 5179a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_MODE_SINGLE_SHOT 3 5189a5557fdSlucy wang - Sun Microsystems - Beijing China 5199a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_MODE_MAX 4 5209a5557fdSlucy wang - Sun Microsystems - Beijing China 5219a5557fdSlucy wang - Sun Microsystems - Beijing China /* 5229a5557fdSlucy wang - Sun Microsystems - Beijing China * What set of stats 5239a5557fdSlucy wang - Sun Microsystems - Beijing China */ 5249a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_TYPE_INVALID 0 5259a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_TYPE_NIC_RX_CORE 1 5269a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_TYPE_NIC_TX_CORE 2 5279a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_TYPE_NIC_RX_ALL 3 5289a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_TYPE_NIC_TX_ALL 4 5299a5557fdSlucy wang - Sun Microsystems - Beijing China #define NX_STATISTICS_TYPE_MAX 5 5309a5557fdSlucy wang - Sun Microsystems - Beijing China 5319a5557fdSlucy wang - Sun Microsystems - Beijing China 5329a5557fdSlucy wang - Sun Microsystems - Beijing China /* 5339a5557fdSlucy wang - Sun Microsystems - Beijing China * Request to setup statistics gathering. 5349a5557fdSlucy wang - Sun Microsystems - Beijing China * CRB - DOES NOT REQUIRE Rx/TX CONTEXT 5359a5557fdSlucy wang - Sun Microsystems - Beijing China */ 5369a5557fdSlucy wang - Sun Microsystems - Beijing China 5379a5557fdSlucy wang - Sun Microsystems - Beijing China typedef struct nx_hostrq_stat_setup_s { 5389a5557fdSlucy wang - Sun Microsystems - Beijing China U64 host_stat_buffer; /* Where to dma stats */ 5399a5557fdSlucy wang - Sun Microsystems - Beijing China U32 host_stat_size; /* Size of stat buffer */ 5409a5557fdSlucy wang - Sun Microsystems - Beijing China U16 context_id; /* Which context */ 5419a5557fdSlucy wang - Sun Microsystems - Beijing China U16 stat_type; /* What class of stats */ 5429a5557fdSlucy wang - Sun Microsystems - Beijing China U16 stat_mode; /* When to update */ 5439a5557fdSlucy wang - Sun Microsystems - Beijing China U16 stat_interval; /* Frequency of update */ 5449a5557fdSlucy wang - Sun Microsystems - Beijing China } nx_hostrq_stat_setup_t; 5459a5557fdSlucy wang - Sun Microsystems - Beijing China 546*93833965Sjing xiong ERI-SUN #ifdef __cplusplus 547*93833965Sjing xiong ERI-SUN } 548*93833965Sjing xiong ERI-SUN #endif 5499a5557fdSlucy wang - Sun Microsystems - Beijing China 5509a5557fdSlucy wang - Sun Microsystems - Beijing China #endif /* _NXHAL_NIC_INTERFACE_H_ */ 551