2012-02-14 14:58:17

by Toby Gray

[permalink] [raw]
Subject: [PATCH 1/1] usb: cdc-ncm: Increase maximum allowed datagram size

Some NCM devices exist which will send datagrams larger than 2k and
don't support the GetMaxDatagramSize request, such as the Nokia 701
Mobile Telephone.

This sets the maximum limit of datagrams to the theoretical limit for
16-bit NTBs, preventing dropping of large datagrams received from some
devices.

Signed-off-by: Toby Gray <[email protected]>
---
drivers/net/usb/cdc_ncm.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index 3a539a9..d9be846 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -67,8 +67,10 @@

#define CDC_NCM_MIN_TX_PKT 512 /* bytes */

-/* Default value for MaxDatagramSize */
-#define CDC_NCM_MAX_DATAGRAM_SIZE 2048 /* bytes */
+/* Maximum value for MaxDatagramSize, this is 16k (max NTB size)
+ * minus NTH size (12 bytes) and minus the smallest possible NDP size
+ * (16 bytes). */
+#define CDC_NCM_MAX_DATAGRAM_SIZE 16356 /* bytes */

/*
* Maximum amount of datagrams in NCM Datagram Pointer Table, not counting
--
1.7.0.4


2012-02-14 19:46:32

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 1/1] usb: cdc-ncm: Increase maximum allowed datagram size

From: Toby Gray <[email protected]>
Date: Tue, 14 Feb 2012 14:39:35 +0000

> Some NCM devices exist which will send datagrams larger than 2k and
> don't support the GetMaxDatagramSize request, such as the Nokia 701
> Mobile Telephone.
>
> This sets the maximum limit of datagrams to the theoretical limit for
> 16-bit NTBs, preventing dropping of large datagrams received from some
> devices.
>
> Signed-off-by: Toby Gray <[email protected]>

Can a USB expert please sanity check this before I apply it?

Thanks.

2012-02-14 22:27:33

by Alexey Orishko

[permalink] [raw]
Subject: Re: [PATCH 1/1] usb: cdc-ncm: Increase maximum allowed datagram size

On Tue, Feb 14, 2012 at 8:46 PM, David Miller <[email protected]> wrote:
>
> Can a USB expert please sanity check this before I apply it?

I would recommend to change CDC_NCM_NTB_MAX_SIZE_TX(RX) to 32K and
simply set MAX_DATAGRAM_SIZE to 16K

/alexey

2012-02-15 08:50:56

by Oliver Neukum

[permalink] [raw]
Subject: Re: [PATCH 1/1] usb: cdc-ncm: Increase maximum allowed datagram size

Am Dienstag, 14. Februar 2012, 23:27:29 schrieb Alexey Orishko:
> On Tue, Feb 14, 2012 at 8:46 PM, David Miller <[email protected]> wrote:
> >
> > Can a USB expert please sanity check this before I apply it?
>
> I would recommend to change CDC_NCM_NTB_MAX_SIZE_TX(RX) to 32K and
> simply set MAX_DATAGRAM_SIZE to 16K

Have you tried that under severe memory presssure?

Regards
Oliver

2012-02-15 14:40:05

by Alexey Orishko

[permalink] [raw]
Subject: Re: [PATCH 1/1] usb: cdc-ncm: Increase maximum allowed datagram size

On Wed, Feb 15, 2012 at 9:53 AM, Oliver Neukum <[email protected]> wrote:
> Have you tried that under severe memory presssure?

Well, it is a simplistic view upon host configuration.
Developing of NCM spec was done with mind set, that host must be more
capable than device.

However, proposal above doesn't solve problem completely due to usbnet.
Currently I'm testing some improvements/fixes related to data handling
and driver latency with the plan to post it in the near future.

Regards,
Alexey