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: stable@vger.kernel.org # 6.5.x Signed-off-by: Foster Snowhill <forst@pen.gy> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent ee591f2 commit be154b5

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

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)