The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/bxe/ecore_mfw_req.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * SPDX-License-Identifier: BSD-2-Clause
    3  *
    4  * Copyright (c) 2007-2017 QLogic Corporation. All rights reserved.
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  *
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
   20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
   26  * THE POSSIBILITY OF SUCH DAMAGE.
   27  */
   28 
   29 #include <sys/cdefs.h>
   30 __FBSDID("$FreeBSD$");
   31 
   32 #ifndef ECORE_MFW_REQ_H
   33 #define ECORE_MFW_REQ_H
   34 
   35 
   36 
   37 #define PORT_0              0
   38 #define PORT_1              1
   39 #define PORT_MAX            2
   40 #define NVM_PATH_MAX        2
   41 
   42 /* FCoE capabilities required from the driver */
   43 struct fcoe_capabilities {
   44         uint32_t capability1;
   45         /* Maximum number of I/Os per connection */
   46         #define FCOE_IOS_PER_CONNECTION_MASK    0x0000ffff
   47         #define FCOE_IOS_PER_CONNECTION_SHIFT   0
   48         /* Maximum number of Logins per port */
   49         #define FCOE_LOGINS_PER_PORT_MASK       0xffff0000
   50         #define FCOE_LOGINS_PER_PORT_SHIFT   16
   51 
   52         uint32_t capability2;
   53         /* Maximum number of exchanges */
   54         #define FCOE_NUMBER_OF_EXCHANGES_MASK   0x0000ffff
   55         #define FCOE_NUMBER_OF_EXCHANGES_SHIFT  0
   56         /* Maximum NPIV WWN per port */
   57         #define FCOE_NPIV_WWN_PER_PORT_MASK     0xffff0000
   58         #define FCOE_NPIV_WWN_PER_PORT_SHIFT    16
   59 
   60         uint32_t capability3;
   61         /* Maximum number of targets supported */
   62         #define FCOE_TARGETS_SUPPORTED_MASK     0x0000ffff
   63         #define FCOE_TARGETS_SUPPORTED_SHIFT    0
   64         /* Maximum number of outstanding commands across all connections */
   65         #define FCOE_OUTSTANDING_COMMANDS_MASK  0xffff0000
   66         #define FCOE_OUTSTANDING_COMMANDS_SHIFT 16
   67 
   68         uint32_t capability4;
   69         #define FCOE_CAPABILITY4_STATEFUL                       0x00000001
   70         #define FCOE_CAPABILITY4_STATELESS                      0x00000002
   71         #define FCOE_CAPABILITY4_CAPABILITIES_REPORTED_VALID    0x00000004
   72 };
   73 
   74 struct glob_ncsi_oem_data
   75 {
   76         uint32_t driver_version;
   77         uint32_t unused[3];
   78         struct fcoe_capabilities fcoe_features[NVM_PATH_MAX][PORT_MAX];
   79 };
   80 
   81 /* current drv_info version */
   82 #define DRV_INFO_CUR_VER 2
   83 
   84 /* drv_info op codes supported */
   85 enum drv_info_opcode {
   86         ETH_STATS_OPCODE,
   87         FCOE_STATS_OPCODE,
   88         ISCSI_STATS_OPCODE
   89 };
   90 
   91 #define ETH_STAT_INFO_VERSION_LEN       12
   92 /*  Per PCI Function Ethernet Statistics required from the driver */
   93 struct eth_stats_info {
   94         /* Function's Driver Version. padded to 12 */
   95         uint8_t version[ETH_STAT_INFO_VERSION_LEN];
   96         /* Locally Admin Addr. BigEndian EIU48. Actual size is 6 bytes */
   97         uint8_t mac_local[8];
   98         uint8_t mac_add1[8];            /* Additional Programmed MAC Addr 1. */
   99         uint8_t mac_add2[8];            /* Additional Programmed MAC Addr 2. */
  100         uint32_t mtu_size;              /* MTU Size. Note   : Negotiated MTU */
  101         uint32_t feature_flags; /* Feature_Flags. */
  102 #define FEATURE_ETH_CHKSUM_OFFLOAD_MASK         0x01
  103 #define FEATURE_ETH_LSO_MASK                    0x02
  104 #define FEATURE_ETH_BOOTMODE_MASK               0x1C
  105 #define FEATURE_ETH_BOOTMODE_SHIFT              2
  106 #define FEATURE_ETH_BOOTMODE_NONE               (0x0 << 2)
  107 #define FEATURE_ETH_BOOTMODE_PXE                (0x1 << 2)
  108 #define FEATURE_ETH_BOOTMODE_ISCSI              (0x2 << 2)
  109 #define FEATURE_ETH_BOOTMODE_FCOE               (0x3 << 2)
  110 #define FEATURE_ETH_TOE_MASK                    0x20
  111         uint32_t lso_max_size;  /* LSO MaxOffloadSize. */
  112         uint32_t lso_min_seg_cnt;       /* LSO MinSegmentCount. */
  113         /* Num Offloaded Connections TCP_IPv4. */
  114         uint32_t ipv4_ofld_cnt;
  115         /* Num Offloaded Connections TCP_IPv6. */
  116         uint32_t ipv6_ofld_cnt;
  117         uint32_t promiscuous_mode;      /* Promiscuous Mode. non-zero true */
  118         uint32_t txq_size;              /* TX Descriptors Queue Size */
  119         uint32_t rxq_size;              /* RX Descriptors Queue Size */
  120         /* TX Descriptor Queue Avg Depth. % Avg Queue Depth since last poll */
  121         uint32_t txq_avg_depth;
  122         /* RX Descriptors Queue Avg Depth. % Avg Queue Depth since last poll */
  123         uint32_t rxq_avg_depth;
  124         /* IOV_Offload. 0=none; 1=MultiQueue, 2=VEB 3= VEPA*/
  125         uint32_t iov_offload;
  126         /* Number of NetQueue/VMQ Config'd. */
  127         uint32_t netq_cnt;
  128         uint32_t vf_cnt;                /* Num VF assigned to this PF. */
  129 };
  130 
  131 /*  Per PCI Function FCOE Statistics required from the driver */
  132 struct fcoe_stats_info {
  133         uint8_t version[12];            /* Function's Driver Version. */
  134         uint8_t mac_local[8];   /* Locally Admin Addr. */
  135         uint8_t mac_add1[8];            /* Additional Programmed MAC Addr 1. */
  136         uint8_t mac_add2[8];            /* Additional Programmed MAC Addr 2. */
  137         /* QoS Priority (per 802.1p). 0-7255 */
  138         uint32_t qos_priority;
  139         uint32_t txq_size;              /* FCoE TX Descriptors Queue Size. */
  140         uint32_t rxq_size;              /* FCoE RX Descriptors Queue Size. */
  141         /* FCoE TX Descriptor Queue Avg Depth. */
  142         uint32_t txq_avg_depth;
  143         /* FCoE RX Descriptors Queue Avg Depth. */
  144         uint32_t rxq_avg_depth;
  145         uint32_t rx_frames_lo;  /* FCoE RX Frames received. */
  146         uint32_t rx_frames_hi;  /* FCoE RX Frames received. */
  147         uint32_t rx_bytes_lo;   /* FCoE RX Bytes received. */
  148         uint32_t rx_bytes_hi;   /* FCoE RX Bytes received. */
  149         uint32_t tx_frames_lo;  /* FCoE TX Frames sent. */
  150         uint32_t tx_frames_hi;  /* FCoE TX Frames sent. */
  151         uint32_t tx_bytes_lo;   /* FCoE TX Bytes sent. */
  152         uint32_t tx_bytes_hi;   /* FCoE TX Bytes sent. */
  153         uint32_t rx_fcs_errors; /* number of receive packets with FCS errors */
  154         uint32_t rx_fc_crc_errors;      /* number of FC frames with CRC errors*/
  155         uint32_t fip_login_failures;    /* number of FCoE/FIP Login failures */
  156 };
  157 
  158 /* Per PCI  Function iSCSI Statistics required from the driver*/
  159 struct iscsi_stats_info {
  160         uint8_t version[12];            /* Function's Driver Version. */
  161         uint8_t mac_local[8];   /* Locally Admin iSCSI MAC Addr. */
  162         uint8_t mac_add1[8];            /* Additional Programmed MAC Addr 1. */
  163         /* QoS Priority (per 802.1p). 0-7255 */
  164         uint32_t qos_priority;
  165 
  166         uint8_t initiator_name[64];     /* iSCSI Boot Initiator Node name. */
  167 
  168         uint8_t ww_port_name[64];       /* iSCSI World wide port name */
  169 
  170         uint8_t boot_target_name[64];/* iSCSI Boot Target Name. */
  171 
  172         uint8_t boot_target_ip[16];     /* iSCSI Boot Target IP. */
  173         uint32_t boot_target_portal;    /* iSCSI Boot Target Portal. */
  174         uint8_t boot_init_ip[16];       /* iSCSI Boot Initiator IP Address. */
  175         uint32_t max_frame_size;        /* Max Frame Size. bytes */
  176         uint32_t txq_size;              /* PDU TX Descriptors Queue Size. */
  177         uint32_t rxq_size;              /* PDU RX Descriptors Queue Size. */
  178 
  179         uint32_t txq_avg_depth; /*PDU TX Descriptor Queue Avg Depth. */
  180         uint32_t rxq_avg_depth; /*PDU RX Descriptors Queue Avg Depth. */
  181         uint32_t rx_pdus_lo;            /* iSCSI PDUs received. */
  182         uint32_t rx_pdus_hi;            /* iSCSI PDUs received. */
  183 
  184         uint32_t rx_bytes_lo;   /* iSCSI RX Bytes received. */
  185         uint32_t rx_bytes_hi;   /* iSCSI RX Bytes received. */
  186         uint32_t tx_pdus_lo;            /* iSCSI PDUs sent. */
  187         uint32_t tx_pdus_hi;            /* iSCSI PDUs sent. */
  188 
  189         uint32_t tx_bytes_lo;   /* iSCSI PDU TX Bytes sent. */
  190         uint32_t tx_bytes_hi;   /* iSCSI PDU TX Bytes sent. */
  191         uint32_t pcp_prior_map_tbl;     /*C-PCP to S-PCP Priority MapTable.
  192                                 9 nibbles, the position of each nibble
  193                                 represents the C-PCP value, the value
  194                                 of the nibble = S-PCP value.*/
  195 };
  196 
  197 union drv_info_to_mcp {
  198         struct eth_stats_info           ether_stat;
  199         struct fcoe_stats_info          fcoe_stat;
  200         struct iscsi_stats_info         iscsi_stat;
  201 };
  202 
  203 
  204 #endif /* ECORE_MFW_REQ_H */
  205 

Cache object: 9ffdd323e2b0d3b6bc4c355c2b4f419f


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.