These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / net / vmxnet3 / vmxnet3_defs.h
index 3718d02..221a530 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Linux driver for VMware's vmxnet3 ethernet NIC.
  *
- * Copyright (C) 2008-2009, VMware, Inc. All Rights Reserved.
+ * Copyright (C) 2008-2015, VMware, Inc. All Rights Reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -277,6 +277,40 @@ struct Vmxnet3_RxCompDesc {
 #endif  /* __BIG_ENDIAN_BITFIELD */
 };
 
+struct Vmxnet3_RxCompDescExt {
+       __le32          dword1;
+       u8              segCnt;       /* Number of aggregated packets */
+       u8              dupAckCnt;    /* Number of duplicate Acks */
+       __le16          tsDelta;      /* TCP timestamp difference */
+       __le32          dword2;
+#ifdef __BIG_ENDIAN_BITFIELD
+       u32             gen:1;        /* generation bit */
+       u32             type:7;       /* completion type */
+       u32             fcs:1;        /* Frame CRC correct */
+       u32             frg:1;        /* IP Fragment */
+       u32             v4:1;         /* IPv4 */
+       u32             v6:1;         /* IPv6 */
+       u32             ipc:1;        /* IP Checksum Correct */
+       u32             tcp:1;        /* TCP packet */
+       u32             udp:1;        /* UDP packet */
+       u32             tuc:1;        /* TCP/UDP Checksum Correct */
+       u32             mss:16;
+#else
+       u32             mss:16;
+       u32             tuc:1;        /* TCP/UDP Checksum Correct */
+       u32             udp:1;        /* UDP packet */
+       u32             tcp:1;        /* TCP packet */
+       u32             ipc:1;        /* IP Checksum Correct */
+       u32             v6:1;         /* IPv6 */
+       u32             v4:1;         /* IPv4 */
+       u32             frg:1;        /* IP Fragment */
+       u32             fcs:1;        /* Frame CRC correct */
+       u32             type:7;       /* completion type */
+       u32             gen:1;        /* generation bit */
+#endif  /* __BIG_ENDIAN_BITFIELD */
+};
+
+
 /* fields in RxCompDesc we access via Vmxnet3_GenericDesc.dword[3] */
 #define VMXNET3_RCD_TUC_SHIFT  16
 #define VMXNET3_RCD_IPC_SHIFT  19
@@ -310,6 +344,7 @@ union Vmxnet3_GenericDesc {
        struct Vmxnet3_RxDesc           rxd;
        struct Vmxnet3_TxCompDesc       tcd;
        struct Vmxnet3_RxCompDesc       rcd;
+       struct Vmxnet3_RxCompDescExt    rcdExt;
 };
 
 #define VMXNET3_INIT_GEN       1
@@ -361,6 +396,7 @@ enum {
 /* completion descriptor types */
 #define VMXNET3_CDTYPE_TXCOMP      0    /* Tx Completion Descriptor */
 #define VMXNET3_CDTYPE_RXCOMP      3    /* Rx Completion Descriptor */
+#define VMXNET3_CDTYPE_RXCOMP_LRO  4    /* Rx Completion Descriptor for LRO */
 
 enum {
        VMXNET3_GOS_BITS_UNK    = 0,   /* unknown */