net/qede: fix VF reload
[dpdk.git] / drivers / net / qede / base / ecore_vfpf_if.h
index d632423..f92dc42 100644 (file)
@@ -1,9 +1,7 @@
-/*
- * Copyright (c) 2016 QLogic Corporation.
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2016 - 2018 Cavium Inc.
  * All rights reserved.
- * www.qlogic.com
- *
- * See LICENSE.qede_pmd for copyright and licensing details.
+ * www.cavium.com
  */
 
 #ifndef __ECORE_VF_PF_IF_H__
@@ -101,6 +99,12 @@ struct vfpf_acquire_tlv {
         * this, and use the legacy CID scheme.
         */
 #define VFPF_ACQUIRE_CAP_QUEUE_QIDS    (1 << 2)
+
+       /* The VF is using the physical bar. While this is mostly internal
+        * to the VF, might affect the number of CIDs supported assuming
+        * QUEUE_QIDS is set.
+        */
+#define VFPF_ACQUIRE_CAP_PHYSICAL_BAR  (1 << 3)
                u64 capabilities;
                u8 fw_major;
                u8 fw_minor;
@@ -190,7 +194,8 @@ struct pfvf_acquire_resp_tlv {
                u16 chip_rev;
                u8 dev_type;
 
-               u8 padding;
+               /* Doorbell bar size configured in HW: log(size) or 0 */
+               u8 bar_size;
 
                struct pfvf_stats_info stats_info;
 
@@ -246,6 +251,13 @@ struct vfpf_qid_tlv {
        u8                      padding[3];
 };
 
+/* Soft FLR req */
+struct vfpf_soft_flr_tlv {
+       struct vfpf_first_tlv first_tlv;
+       u32 reserved1;
+       u32 reserved2;
+};
+
 /* Setup Queue */
 struct vfpf_start_rxq_tlv {
        struct vfpf_first_tlv   first_tlv;
@@ -389,7 +401,13 @@ struct vfpf_vport_update_mcast_bin_tlv {
        struct channel_tlv      tl;
        u8                      padding[4];
 
-       u64             bins[8];
+       /* This was a mistake; There are only 256 approx bins,
+        * and in HSI they're divided into 32-bit values.
+        * As old VFs used to set-bit to the values on its side,
+        * the upper half of the array is never expected to contain any data.
+        */
+       u64             bins[4];
+       u64             obsolete_bins[4];
 };
 
 struct vfpf_vport_update_accept_param_tlv {
@@ -417,6 +435,8 @@ struct vfpf_vport_update_sge_tpa_tlv {
        #define VFPF_TPA_PKT_SPLIT_FLAG      (1 << 2)
        #define VFPF_TPA_HDR_DATA_SPLIT_FLAG (1 << 3)
        #define VFPF_TPA_GRO_CONSIST_FLAG    (1 << 4)
+       #define VFPF_TPA_TUNN_IPV4_EN_FLAG   (1 << 5)
+       #define VFPF_TPA_TUNN_IPV6_EN_FLAG   (1 << 6)
 
        u8                      update_sge_tpa_flags;
        #define VFPF_UPDATE_SGE_DEPRECATED_FLAG    (1 << 0)
@@ -516,6 +536,18 @@ struct pfvf_read_coal_resp_tlv {
        u8 padding[6];
 };
 
+struct vfpf_bulletin_update_mac_tlv {
+       struct vfpf_first_tlv first_tlv;
+       u8 mac[ETH_ALEN];
+       u8 padding[2];
+};
+
+struct vfpf_update_mtu_tlv {
+       struct vfpf_first_tlv first_tlv;
+       u16 mtu;
+       u8 padding[6];
+};
+
 union vfpf_tlvs {
        struct vfpf_first_tlv                   first_tlv;
        struct vfpf_acquire_tlv                 acquire;
@@ -530,6 +562,9 @@ union vfpf_tlvs {
        struct vfpf_update_tunn_param_tlv       tunn_param_update;
        struct vfpf_update_coalesce             update_coalesce;
        struct vfpf_read_coal_req_tlv           read_coal_req;
+       struct vfpf_bulletin_update_mac_tlv     bulletin_update_mac;
+       struct vfpf_update_mtu_tlv              update_mtu;
+       struct vfpf_soft_flr_tlv                soft_flr;
        struct tlv_buffer_size                  tlv_buf_size;
 };
 
@@ -660,6 +695,41 @@ enum {
        CHANNEL_TLV_COALESCE_UPDATE,
        CHANNEL_TLV_QID,
        CHANNEL_TLV_COALESCE_READ,
+       CHANNEL_TLV_BULLETIN_UPDATE_MAC,
+       CHANNEL_TLV_UPDATE_MTU,
+       CHANNEL_TLV_RDMA_ACQUIRE,
+       CHANNEL_TLV_RDMA_START,
+       CHANNEL_TLV_RDMA_STOP,
+       CHANNEL_TLV_RDMA_ADD_USER,
+       CHANNEL_TLV_RDMA_REMOVE_USER,
+       CHANNEL_TLV_RDMA_QUERY_COUNTERS,
+       CHANNEL_TLV_RDMA_ALLOC_TID,
+       CHANNEL_TLV_RDMA_REGISTER_TID,
+       CHANNEL_TLV_RDMA_DEREGISTER_TID,
+       CHANNEL_TLV_RDMA_FREE_TID,
+       CHANNEL_TLV_RDMA_CREATE_CQ,
+       CHANNEL_TLV_RDMA_RESIZE_CQ,
+       CHANNEL_TLV_RDMA_DESTROY_CQ,
+       CHANNEL_TLV_RDMA_CREATE_QP,
+       CHANNEL_TLV_RDMA_MODIFY_QP,
+       CHANNEL_TLV_RDMA_QUERY_QP,
+       CHANNEL_TLV_RDMA_DESTROY_QP,
+       CHANNEL_TLV_RDMA_QUERY_PORT,
+       CHANNEL_TLV_RDMA_QUERY_DEVICE,
+       CHANNEL_TLV_RDMA_IWARP_CONNECT,
+       CHANNEL_TLV_RDMA_IWARP_ACCEPT,
+       CHANNEL_TLV_RDMA_IWARP_CREATE_LISTEN,
+       CHANNEL_TLV_RDMA_IWARP_DESTROY_LISTEN,
+       CHANNEL_TLV_RDMA_IWARP_PAUSE_LISTEN,
+       CHANNEL_TLV_RDMA_IWARP_REJECT,
+       CHANNEL_TLV_RDMA_IWARP_SEND_RTR,
+       CHANNEL_TLV_ESTABLISH_LL2_CONN,
+       CHANNEL_TLV_TERMINATE_LL2_CONN,
+       CHANNEL_TLV_ASYNC_EVENT,
+       CHANNEL_TLV_RDMA_CREATE_SRQ,
+       CHANNEL_TLV_RDMA_MODIFY_SRQ,
+       CHANNEL_TLV_RDMA_DESTROY_SRQ,
+       CHANNEL_TLV_SOFT_FLR,
        CHANNEL_TLV_MAX,
 
        /* Required for iterating over vport-update tlvs.
@@ -669,6 +739,6 @@ enum {
 
 /*!!!!! Make sure to update STRINGS structure accordingly !!!!!*/
 };
-extern const char *ecore_channel_tlvs_string[];
+extern const char *qede_ecore_channel_tlvs_string[];
 
 #endif /* __ECORE_VF_PF_IF_H__ */