-/*
- * Copyright 2008-2010 Cisco Systems, Inc. All rights reserved.
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2008-2017 Cisco Systems, Inc. All rights reserved.
* Copyright 2007 Nuova Systems, Inc. All rights reserved.
- *
- * Copyright (c) 2014, Cisco Systems, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
*/
#ifndef _VNIC_ENIC_H_
/* Device-specific region: enet configuration */
struct vnic_enet_config {
- u32 flags;
- u32 wq_desc_count;
- u32 rq_desc_count;
- u16 mtu;
- u16 intr_timer_deprecated;
- u8 intr_timer_type;
- u8 intr_mode;
+ uint32_t flags;
+ uint32_t wq_desc_count;
+ uint32_t rq_desc_count;
+ uint16_t mtu;
+ uint16_t intr_timer_deprecated;
+ uint8_t intr_timer_type;
+ uint8_t intr_mode;
char devname[16];
- u32 intr_timer_usec;
- u16 loop_tag;
- u16 vf_rq_count;
- u16 num_arfs;
- u64 mem_paddr;
- u16 rdma_qp_id;
- u16 rdma_qp_count;
- u16 rdma_resgrp;
- u32 rdma_mr_id;
- u32 rdma_mr_count;
- u32 max_pkt_size;
+ uint32_t intr_timer_usec;
+ uint16_t loop_tag;
+ uint16_t vf_rq_count;
+ uint16_t num_arfs;
+ uint64_t mem_paddr;
+ uint16_t rdma_qp_id;
+ uint16_t rdma_qp_count;
+ uint16_t rdma_resgrp;
+ uint32_t rdma_mr_id;
+ uint32_t rdma_mr_count;
+ uint32_t max_pkt_size;
};
#define VENETF_TSO 0x1 /* TSO enabled */
#define VENETF_VXLAN 0x10000 /* VxLAN offload */
#define VENETF_NVGRE 0x20000 /* NVGRE offload */
#define VENETF_GRPINTR 0x40000 /* group interrupt */
+#define VENETF_NICSWITCH 0x80000 /* NICSWITCH enabled */
+#define VENETF_RSSHASH_UDPIPV4 0x100000 /* Hash on UDP + IPv4 fields */
+#define VENETF_RSSHASH_UDPIPV6 0x200000 /* Hash on UDP + IPv6 fields */
#define VENET_INTR_TYPE_MIN 0 /* Timer specs min interrupt spacing */
#define VENET_INTR_TYPE_IDLE 1 /* Timer specs idle time before irq */