]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - drivers/net/hyperv/hyperv_net.h
hv_netvsc: Fix the TX/RX buffer default sizes
[thirdparty/linux.git] / drivers / net / hyperv / hyperv_net.h
index 88ddfb92122b0e15a7b031a79c4ec8078af79cd9..845ddc7bba46bf3c70144905e72511f561f37285 100644 (file)
@@ -146,7 +146,6 @@ struct hv_netvsc_packet {
 
 struct netvsc_device_info {
        unsigned char mac_adr[ETH_ALEN];
-       int  ring_size;
        u32  num_chn;
        u32  send_sections;
        u32  recv_sections;
@@ -188,6 +187,9 @@ struct rndis_message;
 struct netvsc_device;
 struct net_device_context;
 
+extern u32 netvsc_ring_bytes;
+extern struct reciprocal_value netvsc_ring_reciprocal;
+
 struct netvsc_device *netvsc_device_add(struct hv_device *device,
                                        const struct netvsc_device_info *info);
 int netvsc_alloc_recv_comp_ring(struct netvsc_device *net_device, u32 q_idx);
@@ -635,14 +637,27 @@ struct nvsp_message {
 #define NETVSC_MTU 65535
 #define NETVSC_MTU_MIN ETH_MIN_MTU
 
-#define NETVSC_RECEIVE_BUFFER_SIZE             (1024*1024*16)  /* 16MB */
-#define NETVSC_RECEIVE_BUFFER_SIZE_LEGACY      (1024*1024*15)  /* 15MB */
-#define NETVSC_SEND_BUFFER_SIZE                        (1024 * 1024 * 15)   /* 15MB */
+/* Max buffer sizes allowed by a host */
+#define NETVSC_RECEIVE_BUFFER_SIZE             (1024 * 1024 * 31) /* 31MB */
+#define NETVSC_RECEIVE_BUFFER_SIZE_LEGACY      (1024 * 1024 * 15) /* 15MB */
+#define NETVSC_RECEIVE_BUFFER_DEFAULT          (1024 * 1024 * 16)
+
+#define NETVSC_SEND_BUFFER_SIZE                        (1024 * 1024 * 15)  /* 15MB */
+#define NETVSC_SEND_BUFFER_DEFAULT             (1024 * 1024)
+
 #define NETVSC_INVALID_INDEX                   -1
 
 #define NETVSC_SEND_SECTION_SIZE               6144
 #define NETVSC_RECV_SECTION_SIZE               1728
 
+/* Default size of TX buf: 1MB, RX buf: 16MB */
+#define NETVSC_MIN_TX_SECTIONS 10
+#define NETVSC_DEFAULT_TX      (NETVSC_SEND_BUFFER_DEFAULT \
+                                / NETVSC_SEND_SECTION_SIZE)
+#define NETVSC_MIN_RX_SECTIONS 10
+#define NETVSC_DEFAULT_RX      (NETVSC_RECEIVE_BUFFER_DEFAULT \
+                                / NETVSC_RECV_SECTION_SIZE)
+
 #define NETVSC_RECEIVE_BUFFER_ID               0xcafe
 #define NETVSC_SEND_BUFFER_ID                  0
 
@@ -804,8 +819,6 @@ struct netvsc_device {
 
        struct rndis_device *extension;
 
-       int ring_size;
-
        u32 max_pkt; /* max number of pkt in one send, e.g. 8 */
        u32 pkt_align; /* alignment bytes, e.g. 8 */
 
@@ -1425,32 +1438,6 @@ struct rndis_message {
        (sizeof(msg) + (sizeof(struct rndis_message) -  \
         sizeof(union rndis_message_container)))
 
-/* get pointer to info buffer with message pointer */
-#define MESSAGE_TO_INFO_BUFFER(msg)                            \
-       (((unsigned char *)(msg)) + msg->info_buf_offset)
-
-/* get pointer to status buffer with message pointer */
-#define MESSAGE_TO_STATUS_BUFFER(msg)                  \
-       (((unsigned char *)(msg)) + msg->status_buf_offset)
-
-/* get pointer to OOBD buffer with message pointer */
-#define MESSAGE_TO_OOBD_BUFFER(msg)                            \
-       (((unsigned char *)(msg)) + msg->oob_data_offset)
-
-/* get pointer to data buffer with message pointer */
-#define MESSAGE_TO_DATA_BUFFER(msg)                            \
-       (((unsigned char *)(msg)) + msg->per_pkt_info_offset)
-
-/* get pointer to contained message from NDIS_MESSAGE pointer */
-#define RNDIS_MESSAGE_PTR_TO_MESSAGE_PTR(rndis_msg)            \
-       ((void *) &rndis_msg->msg)
-
-/* get pointer to contained message from NDIS_MESSAGE pointer */
-#define RNDIS_MESSAGE_RAW_PTR_TO_MESSAGE_PTR(rndis_msg)        \
-       ((void *) rndis_msg)
-
-
-
 #define RNDIS_HEADER_SIZE      (sizeof(struct rndis_message) - \
                                 sizeof(union rndis_message_container))