Skip to content

Commit be154b5

Browse files
ForstPaolo Abeni
authored andcommitted
usbnet: ipheth: document scope of NCM implementation
Clarify that the "NCM" implementation in `ipheth` is very limited, as iOS devices aren't compatible with the CDC NCM specification in regular tethering mode. For a standards-compliant implementation, one shall turn to the `cdc_ncm` module. Cc: [email protected] # 6.5.x Signed-off-by: Foster Snowhill <[email protected]> Reviewed-by: Jakub Kicinski <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
1 parent ee591f2 commit be154b5

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

drivers/net/usb/ipheth.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,14 @@ static int ipheth_rcvbulk_callback_legacy(struct urb *urb)
218218
return ipheth_consume_skb(buf, len, dev);
219219
}
220220

221+
/* In "NCM mode", the iOS device encapsulates RX (phone->computer) traffic
222+
* in NCM Transfer Blocks (similarly to CDC NCM). However, unlike reverse
223+
* tethering (handled by the `cdc_ncm` driver), regular tethering is not
224+
* compliant with the CDC NCM spec, as the device is missing the necessary
225+
* descriptors, and TX (computer->phone) traffic is not encapsulated
226+
* at all. Thus `ipheth` implements a very limited subset of the spec with
227+
* the sole purpose of parsing RX URBs.
228+
*/
221229
static int ipheth_rcvbulk_callback_ncm(struct urb *urb)
222230
{
223231
struct usb_cdc_ncm_nth16 *ncmh;

0 commit comments

Comments
 (0)