forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/net/vmxnet3/vmxnet3_int.h
....@@ -1,7 +1,7 @@
11 /*
22 * Linux driver for VMware's vmxnet3 ethernet NIC.
33 *
4
- * Copyright (C) 2008-2016, VMware, Inc. All Rights Reserved.
4
+ * Copyright (C) 2008-2020, VMware, Inc. All Rights Reserved.
55 *
66 * This program is free software; you can redistribute it and/or modify it
77 * under the terms of the GNU General Public License as published by the
....@@ -69,18 +69,19 @@
6969 /*
7070 * Version numbers
7171 */
72
-#define VMXNET3_DRIVER_VERSION_STRING "1.4.16.0-k"
72
+#define VMXNET3_DRIVER_VERSION_STRING "1.5.0.0-k"
7373
7474 /* Each byte of this 32-bit integer encodes a version number in
7575 * VMXNET3_DRIVER_VERSION_STRING.
7676 */
77
-#define VMXNET3_DRIVER_VERSION_NUM 0x01041000
77
+#define VMXNET3_DRIVER_VERSION_NUM 0x01050000
7878
7979 #if defined(CONFIG_PCI_MSI)
8080 /* RSS only makes sense if MSI-X is supported. */
8181 #define VMXNET3_RSS
8282 #endif
8383
84
+#define VMXNET3_REV_4 3 /* Vmxnet3 Rev. 4 */
8485 #define VMXNET3_REV_3 2 /* Vmxnet3 Rev. 3 */
8586 #define VMXNET3_REV_2 1 /* Vmxnet3 Rev. 2 */
8687 #define VMXNET3_REV_1 0 /* Vmxnet3 Rev. 1 */
....@@ -218,10 +219,16 @@
218219 bool ipv4;
219220 bool ipv6;
220221 u16 mss;
221
- u32 eth_ip_hdr_size; /* only valid for pkts requesting tso or csum
222
- * offloading
222
+ u32 l4_offset; /* only valid for pkts requesting tso or csum
223
+ * offloading. For encap offload, it refers to
224
+ * inner L4 offset i.e. it includes outer header
225
+ * encap header and inner eth and ip header size
223226 */
224
- u32 l4_hdr_size; /* only valid if mss != 0 */
227
+
228
+ u32 l4_hdr_size; /* only valid if mss != 0
229
+ * Refers to inner L4 hdr size for encap
230
+ * offload
231
+ */
225232 u32 copy_size; /* # of bytes copied into the data ring */
226233 union Vmxnet3_GenericDesc *sop_txd;
227234 union Vmxnet3_GenericDesc *eop_txd;
....@@ -376,6 +383,8 @@
376383 u16 rxdata_desc_size;
377384
378385 bool rxdataring_enabled;
386
+ bool default_rss_fields;
387
+ enum Vmxnet3_RSSField rss_fields;
379388
380389 struct work_struct work;
381390
....@@ -412,6 +421,8 @@
412421 (adapter->version >= VMXNET3_REV_2 + 1)
413422 #define VMXNET3_VERSION_GE_3(adapter) \
414423 (adapter->version >= VMXNET3_REV_3 + 1)
424
+#define VMXNET3_VERSION_GE_4(adapter) \
425
+ (adapter->version >= VMXNET3_REV_4 + 1)
415426
416427 /* must be a multiple of VMXNET3_RING_SIZE_ALIGN */
417428 #define VMXNET3_DEF_TX_RING_SIZE 512
....@@ -435,6 +446,8 @@
435446
436447 #define VMXNET3_COAL_RBC_RATE(usecs) (1000000 / usecs)
437448 #define VMXNET3_COAL_RBC_USECS(rbc_rate) (1000000 / rbc_rate)
449
+#define VMXNET3_RSS_FIELDS_DEFAULT (VMXNET3_RSS_FIELDS_TCPIP4 | \
450
+ VMXNET3_RSS_FIELDS_TCPIP6)
438451
439452 int
440453 vmxnet3_quiesce_dev(struct vmxnet3_adapter *adapter);
....@@ -454,6 +467,13 @@
454467 void
455468 vmxnet3_rq_destroy_all(struct vmxnet3_adapter *adapter);
456469
470
+netdev_features_t
471
+vmxnet3_fix_features(struct net_device *netdev, netdev_features_t features);
472
+
473
+netdev_features_t
474
+vmxnet3_features_check(struct sk_buff *skb,
475
+ struct net_device *netdev, netdev_features_t features);
476
+
457477 int
458478 vmxnet3_set_features(struct net_device *netdev, netdev_features_t features);
459479