]> Git Repo - linux.git/commit
net: cdc_mbim: handle IPv6 Neigbor Solicitations
authorBjørn Mork <[email protected]>
Thu, 31 Oct 2013 14:56:10 +0000 (15:56 +0100)
committerDavid S. Miller <[email protected]>
Sat, 2 Nov 2013 05:29:37 +0000 (01:29 -0400)
commit5b8f15f78e6fdd572f9265ef24618c10267de318
treeab419a65802c211d8635037a5c4b55407e327487
parent4800599397e2610d4b17a55ef04a16ff3523263d
net: cdc_mbim: handle IPv6 Neigbor Solicitations

MBIM is a point-to-point protocol transporting raw IP packets
with no L2 headers. Only IPv4 and IPv6 are supported. ARP in
particular is not, which is quite logical given the lack of
L2 headers.

The driver still emulates an ethernet interface, dropping all
unsupported protocols, and avoiding neigbour resolving by
setting the IFF_NOARP flag.

The MBIM specification does not explicitly forbid IPv6 Neighbor
Discovery, and it seems the other OS support will respond to
Neighbor Solicitations on MBIM links. There are therefore
buggy devices out there, which despite the pointlessness, still
require Neighbor Discovery for IPv6 over MBIM.

This is incompatible with the IFF_NOARP flag which disables
both ARP and ND.  We cannot support ARP in any case, so we
have to keep that flag. This patch implements a workaround
for the buggy devices, letting the driver respond directly
to Neighbor Solicitations from the device.

This is not optimal, but will have minimal effect on any sane
device.

Cc: Greg Suarez <[email protected]>
Reported-and-tested-by: Thomas Schäfer <[email protected]>
Signed-off-by: Bjørn Mork <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
drivers/net/usb/cdc_mbim.c
This page took 0.053434 seconds and 4 git commands to generate.