Basic Testing of CDC-ECM
The current rev of the Gingerbread project uses Version 2.6.32 of the Linux kernel. This version contains EEM support with a small (but fatal) bug which we have already documented in earlier work. The Android kernel is patched to disable EEM even if the EEM option is selected. By this it is meant the module parameter use_eem defaults to 0 (it defaults to 1 in other kernels). Since modules are not used much (see below), this means that EEM is not readily available. However, for test purposes, we fixed the EEM bug and changed the default value of the use_eem parameter.
To do our tests, we disabled the Android gadget and enabled the g_ether gadget with and without the EEM option.
NOTE: a patch is available for our customers to use to make EEM work.Benchmarking Tools.
In the Belcarra TestDrive environment, we used 3 main tools:
- ping
- wget (HTTP)
- iperf
Windows. The netperf tool created by Hewlett Packard is described here and can be found at netperf.org, including a Windows version (source code, needs to be compiled). Another discussion of netperf, including a link to a Windows binary is found here: http://mcpmag.com/articles/2005/09/13/bottleneck-battle.aspx
Overview
- ECM is available in Android/Gingerbread as a secondary configuration of the Android gadget, and as the primary configuration of the (suitably configured) g_ether gadget. Only the latter is suitable for USBLAN
- EEM is available in the same way as ECM in Android/Gingerbread (but buggy - readily patched). The gadget EEM does not fully exploit EEM’s capabilities.
- NCM is not readily available in Android/Gingerbread because Gingerbread is based on the Linux 2.6.32 kernel and g_ncm was introduced in the 2.6.38 Linux kernel. However, this bare-bones NCM gadget can be readily backported..
NOTE: Belcarra’s USB stack is an option and available separately. Contact info@belcarra.com