9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * CDDL HEADER START
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * The contents of this file are subject to the terms of the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Common Development and Distribution License (the "License").
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * You may not use this file except in compliance with the License.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * or http://www.opensolaris.org/os/licensing.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * See the License for the specific language governing permissions
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * and limitations under the License.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * When distributing Covered Code, include this CDDL HEADER in each
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * If applicable, add the following below this CDDL HEADER, with the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * fields enclosed by brackets "[]" replaced with your own identifying
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * information: Portions Copyright [yyyy] [name of copyright owner]
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * CDDL HEADER END
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Copyright 2008 NetXen, Inc. All rights reserved.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Use is subject to license terms.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#ifndef _UNM_NIC_CMN_H_
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#define _UNM_NIC_CMN_H_
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#ifdef __cplusplus
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUNextern "C" {
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#ifndef sun
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "unm_nic_config.h"
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "unm_compiler_defs.h"
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define IP_ALIGNMENT_BYTES 2 /* make ip aligned on 16byteaddr */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define P2_MAX_MTU (8000)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define P3_MAX_MTU (9600)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_ETHERMTU 1500
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_MAX_ETHERHDR 32 /* This contains some padding */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_RX_NORMAL_BUF_MAX_LEN (NX_MAX_ETHERHDR + NX_ETHERMTU)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_P2_RX_JUMBO_BUF_MAX_LEN (NX_MAX_ETHERHDR + P2_MAX_MTU)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_P3_RX_JUMBO_BUF_MAX_LEN (NX_MAX_ETHERHDR + P3_MAX_MTU)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_RX_LRO_BUFFER_LENGTH ((8*1024) - 512)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RX_LRO_DMA_MAP_LEN (MAX_RX_LRO_BUFFER_LENGTH -\
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IP_ALIGNMENT_BYTES)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Opcodes to be used with the commands */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_ETHER_PKT 0x01
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* The following opcodes are for IP checksum */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_TCP_PKT 0x02
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_UDP_PKT 0x03
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_IP_PKT 0x04
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_TCP_LSO 0x05
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_IPSEC 0x06
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_IPSEC_CMD 0x07
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NETXEN_MAC_NOOP 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NETXEN_MAC_ADD 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NETXEN_MAC_DEL 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* The following opcodes are for internal consumption. */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_CONTROL_OP 0x10
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PEGNET_REQUEST 0x11
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_HOST_REQUEST 0x13
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_NIC_REQUEST 0x14
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_NIC_LRO_REQUEST 0x15
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_MAC_EVENT 0x1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaenum {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_START = 0,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_CONFIG_RSS,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_CONFIG_RSS_TBL,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_CONFIG_INTR_COALESCE,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_CONFIG_LED,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_CONFIG_PROMISCUOUS,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_CONFIG_L2_MAC,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_LRO_REQUEST,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_GET_SNMP_STATS,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_PROXY_START_REQUEST,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_PROXY_STOP_REQUEST,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_PROXY_SET_MTU,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_PROXY_SET_VPORT_MISS_MODE,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_H2P_OPCODE_GET_FINGER_PRINT_REQUEST,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_H2P_OPCODE_INSTALL_LICENSE_REQUEST,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_H2P_OPCODE_GET_LICENSE_CAPABILITY_REQUEST,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_GET_NET_STATS,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China NX_NIC_H2C_OPCODE_LAST
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China};
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define VPORT_MISS_MODE_DROP 0 /* drop all unmatched */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define VPORT_MISS_MODE_ACCEPT_ALL 1 /* accept all packets */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define VPORT_MISS_MODE_ACCEPT_MULTI 2 /* accept unmatched multicast */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#ifdef UNM_RSS
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RSS_CNTRL_CMD 0x20
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_NUM_CARDS 4
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_NUM_PORTS 4 /* Deprecated. donot use this */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_NIU_PORTS MAX_NUM_PORTS
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PORT1 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PORT2 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PORT3 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PORT4 3
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define DESC_CHAIN 0xFF /* descriptor command continuation */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_BUFFERS_PER_CMD 16
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_BUFFERS_PER_DESC 4
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_P2_C0 0x24
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_P2_C1 0x25
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define DUMMY_BUF_UNINIT 0x55555555
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define DUMMY_BUF_INIT 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Following are the states of the Phantom. Phantom will set them and
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Host will read to check if the fields are correct.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PHAN_INITIALIZE_START 0xff00
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PHAN_INITIALIZE_FAILED 0xffff
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PHAN_INITIALIZE_COMPLETE 0xff01
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Host writes the following to notify that it has done the init-handshake */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PHAN_INITIALIZE_ACK 0xf00f
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Following defines will be used in the status descriptor */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_ETHER_PKT_COMPLETE 0xB /* same for both commands */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NUM_RCV_DESC_RINGS 3 /* No of Rcv Descriptor contexts */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* descriptor types */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_DESC_NORMAL 0x01
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_DESC_JUMBO 0x02
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_DESC_LRO 0x04
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_DESC_NORMAL_CTXID 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_DESC_JUMBO_CTXID 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_DESC_LRO_CTXID 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_DESC_TYPE(ID) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((ID == RCV_DESC_JUMBO_CTXID) ? RCV_DESC_JUMBO : \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((ID == RCV_DESC_LRO_CTXID) ? RCV_DESC_LRO : (RCV_DESC_NORMAL)))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_DESC_TYPE_NAME(ID) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((ID == RCV_DESC_JUMBO_CTXID) ? "Jumbo" : \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (ID == RCV_DESC_LRO_CTXID) ? "LRO" : \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (ID == RCV_DESC_NORMAL_CTXID) ? "Normal" : "Unknown")
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_CMD_DESCRIPTORS 4096
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_CMD_DESCRIPTORS_HOST (MAX_CMD_DESCRIPTORS / 4)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_RCV_DESCRIPTORS 8192
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_JUMBO_RCV_DESCRIPTORS 1024
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_LRO_RCV_DESCRIPTORS 16
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_MAX_SUPPORTED_RDS_SIZE (32 * 1024)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_MAX_SUPPORTED_JUMBO_RDS_SIZE (4 * 1024)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PHAN_PEG_RCV_INITIALIZED 0xff01
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PHAN_PEG_RCV_START_INITIALIZE 0xff00
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define get_next_index(index, length) ((((index) + 1) == length)?0:(index) +1)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define get_index_range(index, length, count) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((((index) + (count)) >= length)? \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (((index) + (count))-(length)):((index) + (count)))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_FLOW_TICKS_PER_SEC 2048
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_FLOW_TO_TV_SHIFT_SEC 11
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_FLOW_TO_TV_SHIFT_USEC 9
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_FLOW_TICK_USEC (1000000ULL/UNM_FLOW_TICKS_PER_SEC)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_GLOBAL_TICKS_PER_SEC (4*UNM_FLOW_TICKS_PER_SEC)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_GLOBAL_TICK_USEC (1000000ULL/UNM_GLOBAL_TICKS_PER_SEC)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Following data structures describe the descriptors that will be used.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Added fileds of tcpHdrSize and ipHdrSize, The driver needs to do it only when
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * we are doing LSO (above the 1500 size packet) only.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * This is an overhead but we need it. Let me know if you have questions.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * the size of reference handle been changed to 16 bits to pass the MSS fields
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * for the LSO packet
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN#define FLAGS_MCAST 0x01
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define FLAGS_LSO_ENABLED 0x02
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define FLAGS_IPSEC_SA_ADD 0x04
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN#define FLAGS_IPSEC_SA_DELETE 0x08
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define FLAGS_VLAN_TAGGED 0x10
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#if UNM_CONF_PROCESSOR == UNM_CONF_X86
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#ifndef U64
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef unsigned long long U64;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef uint32_t U32;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef uint16_t U16;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef uint8_t U8;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NUM_SUPPORTED_RINGSETS 4
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_RING_CTX 4
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_CTX_SIGNATURE 0xdee0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_CTX_RESET 0xbad0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_CTX_D3_RESET 0xacc0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* define opcode for ctx_msg */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RX_PRODUCER 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RX_PRODUCER_JUMBO 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RX_PRODUCER_LRO 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_PRODUCER 3
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UPDATE_STATUS_CONSUMER 4
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RESET_CTX 5
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NUM_DB_CODE 6
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_RCV_PRODUCER(ringid) (ringid)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_CMD_PRODUCER TX_PRODUCER
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_RCV_STATUS_CONSUMER UPDATE_STATUS_CONSUMER
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct __msg
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China{
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint32_t PegId:2, /* 0x2 for tx and 01 for rx */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN privId:1, /* must be 1 */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN Count:15, /* for doorbell */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN CtxId:10, /* Ctx_id */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China Opcode:4; /* opcode */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China}ctx_msg, CTX_MSG, *PCTX_MSG;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct __int_msg
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China{
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint32_t Count:18, /* INT */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ConsumerIdx:10,
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN CtxId:4; /* Ctx_id */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China}int_msg, INT_MSG, *PINT_MSG;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* For use in CRB_MPORT_MODE */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MPORT_SINGLE_FUNCTION_MODE 0x1111
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MPORT_MULTI_FUNCTION_MODE 0x2222
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct _RcvContext
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China{
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t RcvRingAddrLo;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t RcvRingAddrHi;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t RcvRingSize;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t Rsrv;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China}RcvContext;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct PREALIGN(64) _RingContext
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China{
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* one command ring */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t CMD_CONSUMER_OFFSET;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t CmdRingAddrLo;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t CmdRingAddrHi;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t CmdRingSize;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t Rsrv;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* three receive rings */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China RcvContext RcvContext[3];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* one status ring */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t StsRingAddrLo;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t StsRingAddrHi;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t StsRingSize;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t CtxId;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint64_t D3_STATE_REGISTER;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint32_t DummyDmaAddrLo;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint32_t DummyDmaAddrHi;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China}POSTALIGN(64) RingContext, RING_CTX, *PRING_CTX;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#ifdef UNM_RSS
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * RSS_SreInfo{} has the information for SRE to calculate the hash value
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Will be passed by the host=> as part of comd descriptor...
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#if UNM_CONF_PROCESSOR == UNM_CONF_X86
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct _RSS_SreInfo {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 HashKeySize;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 HashInformation;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China char key[40];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China}RSS_SreInfo;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * The following Descriptor is used to send RSS commands to the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * PEG.... to be do the SRE registers..
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct PREALIGN(64) _rssCmdDesc
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China{
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * To keep the opcode at the same location as
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * the cmdDescType0, we will have to breakup the key into
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * 2 areas.... Dont like it but for now will do... FSL
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#if UNM_CONF_PROCESSOR == UNM_CONF_X86
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U8 Key0[16];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U64 HashMethod:32,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China HashKeySize:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China Unused: 16,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China opcode:8;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U8 Key1[24];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U64 Unused1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U64 Unused2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#else
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_msgword_t Key0[2];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t HashMethod;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN unm_halfmsgword_t
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China HashKeySize:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China Unused:16,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China opcode:8;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN unm_msgword_t Key1[3];
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN unm_msgword_t Unused1;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN unm_msgword_t Unused2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} POSTALIGN(64) rssCmdDesc_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif /* UNM_RSS */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct PREALIGN(64) cmdDescType0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China{
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t tcpHdrOffset:8, /* For LSO only */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN ipHdrOffset:8, /* For LSO only */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN flags:7, /* as defined above */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* This location/size must not change... */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN opcode:6,
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN Unused:3;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* total number of segments (buffers */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t numOfBuffers:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* for this packet. (could be more than 4) */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN /* Total size of the packet */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN totalLength:24;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN }s1;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint64_t word0;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t AddrLowPart2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t AddrHighPart2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }s1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t AddrBuffer2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t word1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* changed to U16 to add mss */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t referenceHandle:16,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* passed by NDIS_PACKET for LSO */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China mss:16;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t port:4,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ctx_id:4,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* LSO only : MAC+IP+TCP Hdr size */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China totalHdrLength:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* IPSec offoad only */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China connID:16;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }s1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t word2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u3;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t AddrLowPart3;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t AddrHighPart3;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }s1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t AddrBuffer3;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t word3;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u4;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t AddrLowPart1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t AddrHighPart1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }s1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t AddrBuffer1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t word4;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u5;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t buffer1Length:16,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China buffer2Length:16;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t buffer3Length:16,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China buffer4Length:16;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }s1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t word5;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u6;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t AddrLowPart4;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t AddrHighPart4;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }s1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t AddrBuffer4;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t word6;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u7;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN __uint64_t mcastAddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} POSTALIGN(64) cmdDescType0_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Note: sizeof(rcvDesc) should always be a mutliple of 2 */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct rcvDesc
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China{
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint32_t referenceHandle:16,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China flags:16;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint32_t
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* allocated buffer length (usually 2K) */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China bufferLength:32;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t AddrBuffer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} rcvDesc_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* for status field in statusDesc_t */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define STATUS_NEED_CKSUM (1)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define STATUS_CKSUM_OK (2)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define STATUS_CKSUM_NOT_OK (3)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* owner bits of statusDesc_t */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define STATUS_OWNER_HOST (1ULL)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define STATUS_OWNER_PHANTOM (2ULL)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define HOST_STATUS_DESC ((STATUS_OWNER_HOST) << 48)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PHANTOM_STATUS_DESC ((STATUS_OWNER_PHANTOM) << 48)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_PROT_IP (1)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_PROT_UNKNOWN (0)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* LRO specific bits of statusDesc_t */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define LRO_LAST_FRAG (1)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define LRO_NORMAL_FRAG (0)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define LRO_LAST_FRAG_DESC ((LRO_LAST_FRAG)<<63)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define LRO_NORMAL_FRAG_DESC ((LRO_NORMAL_FRAG)<<63)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct PREALIGN(16) statusDesc {
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* initially to be used but noe now */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t port:4,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* completion status may not have use */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China status:4,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* type/index of descriptor ring */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China type:4,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* NIC mode...no use yet */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China totalLength:16,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* handle for the associated packet */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China referenceHandle_lo:4;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* handle for the associated packet */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t referenceHandle_hi:12,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* Pkt protocol */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China prot:4,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China pkt_offset:5,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * This indicates the num of descriptors part of this descriptor chain.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China descCnt:3,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China owner:2,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China opcode:6;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t HashValue;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint16_t vlan;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint8_t HashType;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China union {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * For LRO count is set
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Last LRO fragment is set when it is
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * the last frag as the name says.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint8_t lro_frag:7, last_lro_frag:1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Used to indicate direction in case
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * of captured packets. Egress will
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * contain EPG input, while ingress
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * contains an skb copy.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_CAP_DIRN_OUT 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_CAP_DIRN_IN 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint8_t direction;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Currently for Legacy this is 0.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint8_t nr_frags;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u11;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }s1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint64_t body[2];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }u1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} POSTALIGN(16) statusDesc_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define STATUS_OWNER_NAME(sd) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (((sd)->u1.s1.owner == STATUS_OWNER_HOST) ? "Host" : "Phantom")
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#ifdef UNM_IPSECOFFLOAD
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_IPSEC_SAS 1024
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RECEIVE_IPSEC_SA_BASE 0x8000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * IPSEC related structures and defines
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Values for DIrFlag in the ipsec_sa_t structure below: */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_SA_DIR_INBOUND 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_SA_DIR_OUTBOUND 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Values for Operation Field below: */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_SA_AUTHENTICATE 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_SA_ENDECRYPT 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* COnfidential Algorithm Types: */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_CONF_NONE 0 // NULL encryption?
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_CONF_DES 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_CONF_RESERVED 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_CONF_3DES 3
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Integrity algorithm (AH) types: */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_INTEG_NONE 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_INTEG_MD5 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IPSEC_INTEG_SHA1 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_PROTOCOL_OFFSET 0x9 // from ip header begin, in bytes
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_PKT_TYPE_AH 0x33
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_PKT_TYPE_ESP 0x32
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* 96 bits of output for MD5/SHA1 algorithms */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_AHOUTPUT_LENGTH 12
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * 8 bytes (64 bits) of ICV value for each block of DES_CBC
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * at the begin of ESP payload
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_DES_ICV_LENGTH 8
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#if UNM_CONF_PROCESSOR == UNM_CONF_X86
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct PREALIGN(512) s_ipsec_sa {
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U32 SrcAddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 SrcMask;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 DestAddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 DestMask;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 Protocol:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China DirFlag:4,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IntegCtxInit:2,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ConfCtxInit:2,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China No_of_keys:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China Operation:8;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 IntegAlg:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IntegKeyLen:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ConfAlg:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ConfAlgKeyLen:8;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 SAIndex;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 SPI_Id;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U64 Key1[124];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} POSTALIGN(512) unm_ipsec_sa_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#else
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct PREALIGN(512) s_ipsec_sa {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t SrcAddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t SrcMask;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t DestAddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t DestMask;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t Protocol:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China DirFlag:4,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IntegCtxInit:2,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ConfCtxInit:2,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China No_of_keys:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China Operation:8;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t IntegAlg:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IntegKeyLen:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ConfAlg:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ConfAlgKeyLen:8;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t SAIndex:32;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_halfmsgword_t SPI_Id:32;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* to round up to 1K of structure */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_msgword_t Key1[124];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} POSTALIGN(512) unm_ipsec_sa_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif /* NOT-X86 */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Other common header formats that may be needed */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct _unm_ip_header_s {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 HdrVer:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China diffser:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China TotalLength:16;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 ipId:16,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China flagfrag:16;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 TTL:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China Protocol:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China Chksum:16;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 srcaddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 destaddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} unm_ip_header_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct _unm_ah_header_s {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China U32 NextProto:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China length:8,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China reserved:16;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U32 SPI;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U32 seqno;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U16 ICV;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U16 ICV1;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U16 ICV2;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U16 ICV3;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U16 ICV4;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U16 ICV5;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} unm_ah_header_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct _unm_esp_hdr_s {
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U32 SPI;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN U32 seqno;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} unm_esp_hdr_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif /* UNM_IPSECOFFLOAD */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Defines for various loop counts. These determine the behaviour of the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * system. The classic tradeoff between latency and throughput.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * MAX_DMA_LOOPCOUNT : After how many interations do we start the dma for
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * the status descriptors.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_DMA_LOOPCOUNT (32)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * MAX_TX_DMA_LOOP_COUNT : After how many interations do we start the dma for
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * the command descriptors.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_TX_DMA_LOOP_COUNT 1000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * MAX_RCV_BUFS : Max number Rx packets that can be buffered before DMA/INT
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_RCV_BUFS (4096)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * XXX;shouldnt be exposed in nic_cmn.h
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * DMA_MAX_RCV_BUFS : Max number Rx packets that can be buffered before DMA
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define DMA_MAX_RCV_BUFS (4096)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * XXX;shouldnt be exposed in nic_cmn.h
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * MAX_DMA_ENTRIES : Max number Rx dma entries can be in dma list
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_DMA_ENTRIES (4096)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * MAX_INTR_LOOPCOUNT : After how many iterations do we interrupt the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * host ?
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_INTR_LOOPCOUNT (1024)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * XMIT_LOOP_THRESHOLD : How many times do we spin before we process the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * transmit buffers.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define XMIT_LOOP_THRESHOLD 0x20
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * XMIT_DESC_THRESHOLD : How many descriptors pending before we process
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * the descriptors.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define XMIT_DESC_THRESHOLD 0x4
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * TX_DMA_THRESHOLD : When do we start the dma of the command descriptors.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * We need these number of command descriptors, or we need to exceed the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * loop count. P1 only.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define TX_DMA_THRESHOLD 16
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#if defined(UNM_IP_FILTER)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Commands. Must match the definitions in nic/Linux/include/unm_nic_ioctl.h
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaenum {
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN UNM_IP_FILTER_CLEAR = 1,
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN UNM_IP_FILTER_ADD,
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN UNM_IP_FILTER_DEL,
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN UNM_IP_FILTER_SHOW
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China};
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_FILTER_ENTRIES 16
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct {
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __int32_t count;
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN __uint32_t ip_addr[15];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} unm_ip_filter_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif /* UNM_IP_FILTER */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaenum {
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN UNM_RCV_PEG_0 = 0,
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN UNM_RCV_PEG_1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China};
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#ifdef __cplusplus
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN}
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#endif
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#endif /* !_UNM_NIC_CMN_H_ */