Print this page
12011 ixgbe reports incorrect MAC_STAT_NORCVBUF
Change-Id: Ia71b5669b2bc8f6256a84b0b9c673153f327f5ab

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/ixgbe/ixgbe_sw.h
          +++ new/usr/src/uts/common/io/ixgbe/ixgbe_sw.h
↓ open down ↓ 19 lines elided ↑ open up ↑
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright(c) 2007-2010 Intel Corporation. All rights reserved.
  24   24   */
  25   25  
  26   26  /*
  27   27   * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  28   28   * Copyright (c) 2013 Saso Kiselkov. All rights reserved.
  29   29   * Copyright 2016 OmniTI Computer Consulting, Inc. All rights reserved.
  30      - * Copyright (c) 2017, Joyent, Inc.
       30 + * Copyright 2019 Joyent, Inc.
  31   31   */
  32   32  
  33   33  #ifndef _IXGBE_SW_H
  34   34  #define _IXGBE_SW_H
  35   35  
  36   36  #ifdef __cplusplus
  37   37  extern "C" {
  38   38  #endif
  39   39  
  40   40  #include <sys/types.h>
↓ open down ↓ 41 lines elided ↑ open up ↑
  82   82  
  83   83  #define IXGBE_UNKNOWN                   0x00
  84   84  #define IXGBE_INITIALIZED               0x01
  85   85  #define IXGBE_STARTED                   0x02
  86   86  #define IXGBE_SUSPENDED                 0x04
  87   87  #define IXGBE_STALL                     0x08
  88   88  #define IXGBE_OVERTEMP                  0x20
  89   89  #define IXGBE_INTR_ADJUST               0x40
  90   90  #define IXGBE_ERROR                     0x80
  91   91  
  92      -#define MAX_NUM_UNICAST_ADDRESSES       0x80
  93      -#define MAX_NUM_MULTICAST_ADDRESSES     0x1000
       92 +#define MAX_NUM_UNICAST_ADDRESSES       0x80
       93 +#define MAX_NUM_MULTICAST_ADDRESSES     0x1000
  94   94  #define IXGBE_INTR_NONE                 0
  95   95  #define IXGBE_INTR_MSIX                 1
  96   96  #define IXGBE_INTR_MSI                  2
  97   97  #define IXGBE_INTR_LEGACY               3
  98   98  
  99   99  #define IXGBE_POLL_NULL                 -1
 100  100  
 101  101  #define MAX_COOKIE                      18
 102  102  #define MIN_NUM_TX_DESC                 2
 103  103  
↓ open down ↓ 193 lines elided ↑ open up ↑
 297  297          uint32_t        other_gpie;     /* "other" interrupt types enabling */
 298  298          uint32_t        flags;          /* capability flags */
 299  299  } adapter_info_t;
 300  300  
 301  301  /* bits representing all interrupt types other than tx & rx */
 302  302  #define IXGBE_OTHER_INTR        0x3ff00000
 303  303  #define IXGBE_82599_OTHER_INTR  0x86100000
 304  304  
 305  305  enum ioc_reply {
 306  306          IOC_INVAL = -1, /* bad, NAK with EINVAL */
 307      -        IOC_DONE,       /* OK, reply sent */
      307 +        IOC_DONE,       /* OK, reply sent */
 308  308          IOC_ACK,        /* OK, just send ACK */
 309  309          IOC_REPLY       /* OK, just send reply */
 310  310  };
 311  311  
 312  312  #define DMA_SYNC(area, flag)    ((void) ddi_dma_sync((area)->dma_handle, \
 313  313                                      0, 0, (flag)))
 314  314  
 315  315  /*
 316  316   * Defined for ring index operations
 317  317   * ASSERT(index < limit)
↓ open down ↓ 290 lines elided ↑ open up ↑
 608  608          ulong_t tx_map[BT_BITOUL(MAX_TX_QUEUE_NUM)];    /* bitmap of tx rings */
 609  609          int     txr_cnt;        /* count tx rings */
 610  610          ulong_t other_map[BT_BITOUL(2)];                /* bitmap of other */
 611  611          int     other_cnt;      /* count other interrupt */
 612  612  } ixgbe_intr_vector_t;
 613  613  
 614  614  /*
 615  615   * Software adapter state
 616  616   */
 617  617  typedef struct ixgbe {
 618      -        int                     instance;
      618 +        int                     instance;
 619  619          mac_handle_t            mac_hdl;
 620  620          dev_info_t              *dip;
 621  621          struct ixgbe_hw         hw;
 622  622          struct ixgbe_osdep      osdep;
 623  623  
 624  624          adapter_info_t          *capab; /* adapter hardware capabilities */
 625  625          ddi_taskq_t             *sfp_taskq;     /* sfp-change taskq */
 626  626          ddi_taskq_t             *overtemp_taskq; /* overtemp taskq */
 627  627          ddi_taskq_t             *phy_taskq;     /* external PHY taskq */
 628  628          uint32_t                eims;           /* interrupt mask setting */
↓ open down ↓ 38 lines elided ↑ open up ↑
 667  667           * Transmit Rings
 668  668           */
 669  669          ixgbe_tx_ring_t         *tx_rings;      /* Array of tx rings */
 670  670          uint32_t                num_tx_rings;   /* Number of tx rings in use */
 671  671          uint32_t                tx_ring_size;   /* Tx descriptor ring size */
 672  672          uint32_t                tx_buf_size;    /* Tx buffer size */
 673  673  
 674  674          boolean_t               tx_ring_init;
 675  675          boolean_t               tx_head_wb_enable; /* Tx head wrtie-back */
 676  676          boolean_t               tx_hcksum_enable; /* Tx h/w cksum offload */
 677      -        boolean_t               lso_enable;     /* Large Segment Offload */
 678      -        boolean_t               mr_enable;      /* Multiple Tx and Rx Ring */
      677 +        boolean_t               lso_enable;     /* Large Segment Offload */
      678 +        boolean_t               mr_enable;      /* Multiple Tx and Rx Ring */
 679  679          boolean_t               relax_order_enable; /* Relax Order */
 680  680          uint32_t                classify_mode;  /* Classification mode */
 681  681          uint32_t                tx_copy_thresh; /* Tx copy threshold */
 682  682          uint32_t                tx_recycle_thresh; /* Tx recycle threshold */
 683  683          uint32_t                tx_overload_thresh; /* Tx overload threshold */
 684  684          uint32_t                tx_resched_thresh; /* Tx reschedule threshold */
 685  685          boolean_t               rx_hcksum_enable; /* Rx h/w cksum offload */
 686  686          uint32_t                rx_copy_thresh; /* Rx copy threshold */
 687  687          uint32_t                rx_limit_per_intr; /* Rx pkts per interrupt */
 688  688          uint32_t                intr_throttling[MAX_INTR_VECTOR];
↓ open down ↓ 88 lines elided ↑ open up ↑
 777  777          kstat_named_t tx_fail_no_tbd;   /* Tx Fail Desc Ring Empty */
 778  778          kstat_named_t tx_fail_dma_bind; /* Tx Fail DMA bind */
 779  779          kstat_named_t tx_reschedule;    /* Tx Reschedule */
 780  780          kstat_named_t tx_break_tbd_limit; /* Reached single xmit desc limit */
 781  781          kstat_named_t tx_lso_header_fail; /* New mblk for last LSO hdr frag */
 782  782  
 783  783          kstat_named_t gprc;     /* Good Packets Received Count */
 784  784          kstat_named_t gptc;     /* Good Packets Xmitted Count */
 785  785          kstat_named_t gor;      /* Good Octets Received Count */
 786  786          kstat_named_t got;      /* Good Octets Xmitd Count */
      787 +        kstat_named_t qor;      /* Queue Octets Received */
      788 +        kstat_named_t qot;      /* Queue Octets Transmitted */
      789 +        kstat_named_t qpr;      /* Queue Packets Received */
      790 +        kstat_named_t qpt;      /* Queue Packets Transmitted */
 787  791          kstat_named_t prc64;    /* Packets Received - 64b */
 788  792          kstat_named_t prc127;   /* Packets Received - 65-127b */
 789  793          kstat_named_t prc255;   /* Packets Received - 127-255b */
 790  794          kstat_named_t prc511;   /* Packets Received - 256-511b */
 791  795          kstat_named_t prc1023;  /* Packets Received - 511-1023b */
 792  796          kstat_named_t prc1522;  /* Packets Received - 1024-1522b */
 793  797          kstat_named_t ptc64;    /* Packets Xmitted (64b) */
 794  798          kstat_named_t ptc127;   /* Packets Xmitted (64-127b) */
 795  799          kstat_named_t ptc255;   /* Packets Xmitted (128-255b) */
 796  800          kstat_named_t ptc511;   /* Packets Xmitted (255-511b) */
 797  801          kstat_named_t ptc1023;  /* Packets Xmitted (512-1023b) */
 798  802          kstat_named_t ptc1522;  /* Packets Xmitted (1024-1522b */
 799      -        kstat_named_t qprc[16]; /* Queue Packets Received Count */
 800      -        kstat_named_t qptc[16]; /* Queue Packets Transmitted Count */
 801      -        kstat_named_t qbrc[16]; /* Queue Bytes Received Count */
 802      -        kstat_named_t qbtc[16]; /* Queue Bytes Transmitted Count */
 803  803  
 804  804          kstat_named_t crcerrs;  /* CRC Error Count */
 805  805          kstat_named_t illerrc;  /* Illegal Byte Error Count */
 806  806          kstat_named_t errbc;    /* Error Byte Count */
 807  807          kstat_named_t mspdc;    /* MAC Short Packet Discard Count */
 808  808          kstat_named_t mpc;      /* Missed Packets Count */
 809  809          kstat_named_t mlfc;     /* MAC Local Fault Count */
 810  810          kstat_named_t mrfc;     /* MAC Remote Fault Count */
 811  811          kstat_named_t rlec;     /* Receive Length Error Count */
 812  812          kstat_named_t lxontxc;  /* Link XON Transmitted Count */
↓ open down ↓ 113 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX