usb: gadget: NCM: Add transmit multi-frame.
authorJim Baxter <jim_baxter@mentor.com>
Mon, 7 Jul 2014 17:33:18 +0000 (18:33 +0100)
committerFelipe Balbi <balbi@ti.com>
Thu, 10 Jul 2014 13:49:38 +0000 (08:49 -0500)
commit6d3865f9d41f15ddbcecaa6722871fc0db21d7ab
tree2f4ed7cce199a98fadc042403d6f0088fff3f0a1
parent370af734dfaf8336b496b386e194648e097e248a
usb: gadget: NCM: Add transmit multi-frame.

This adds multi-frame support to the NCM NTB's for
the gadget driver. This allows multiple network
packets to be put inside a single USB NTB with a
maximum size of 16kB.

It has a time out of 300ms to ensure that smaller
number of packets still maintain a normal latency.

Also the .fp_index and .next_fp_index have been
changed to .ndp_index and .next_ndp_index to
match the latest CDC-NCM specification and
help with maintenance.

Results transmitting from gadget to host.

Before the change:

TCP_STREAM Throughput (10^6bits/sec): 22.72
UDP_STREAM Throughput (10^6bits/sec): 25.94

Latency:
netperf -H 192.168.1.101 -v2 -l 50 -t TCP_RR -- -r 16384,16384
Trans.   RoundTrip  Throughput
Rate     Latency    10^6bits/s
per sec  usec/Tran  Outbound

100.83   9918.116   13.215

After the change:

TCP_STREAM Throughput (10^6bits/sec): 124.26
UDP_STREAM Throughput (10^6bits/sec): 227.48

Latency:
netperf -H 192.168.1.101 -v2 -l 50 -t TCP_RR -- -r 16384,16384
Trans.   RoundTrip  Throughput
Rate     Latency    10^6bits/s
per sec  usec/Tran  Outbound

156.80   6377.730   20.552

Signed-off-by: Jim Baxter <jim_baxter@mentor.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/f_ncm.c
drivers/usb/gadget/u_ether.c
drivers/usb/gadget/u_ether.h