All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] usbnet: add flag FLAG_NOARP for usb net devices
@ 2013-01-20  6:12 Wei Shuai
  2013-01-20  6:12 ` [PATCH 2/2] CDC_NCM: adding support FLAG_NOARP for Infineon modem platform Wei Shuai
  0 siblings, 1 reply; 7+ messages in thread
From: Wei Shuai @ 2013-01-20  6:12 UTC (permalink / raw)
  To: dcbw, davem, peter, oneukum, sshtylyov, gregkh, alexey.orishko, bjorn
  Cc: linux-usb, netdev, Wei Shuai

we do have some USB net devices, which cannot do ARP. so we can introduce a new flag 
FLAG_NOARP, then client drivers can easily handle these kind of devices


Signed-off-by: Wei Shuai <cpuwolf@gmail.com>
---
 drivers/net/usb/usbnet.c   |    4 ++++
 include/linux/usb/usbnet.h |    1 +
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 3d4bf01..f34b2eb 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1448,6 +1448,10 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
 		if ((dev->driver_info->flags & FLAG_WWAN) != 0)
 			strcpy(net->name, "wwan%d");
 
+		/* devices that cannot do ARP */
+		if ((dev->driver_info->flags & FLAG_NOARP) != 0)
+			net->flags |= IFF_NOARP;
+
 		/* maybe the remote can't receive an Ethernet MTU */
 		if (net->mtu > (dev->hard_mtu - net->hard_header_len))
 			net->mtu = dev->hard_mtu - net->hard_header_len;
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index bd45eb7..5de7a22 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -100,6 +100,7 @@ struct driver_info {
 #define FLAG_LINK_INTR	0x0800		/* updates link (carrier) status */
 
 #define FLAG_POINTTOPOINT 0x1000	/* possibly use "usb%d" names */
+#define FLAG_NOARP	0x2000		/* device can't do ARP */
 
 /*
  * Indicates to usbnet, that USB driver accumulates multiple IP packets.
-- 
1.7.6.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] CDC_NCM: adding support FLAG_NOARP for Infineon modem platform
  2013-01-20  6:12 [PATCH 1/2] usbnet: add flag FLAG_NOARP for usb net devices Wei Shuai
@ 2013-01-20  6:12 ` Wei Shuai
       [not found]   ` <1358662329-8294-2-git-send-email-cpuwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Wei Shuai @ 2013-01-20  6:12 UTC (permalink / raw)
  To: dcbw, davem, peter, oneukum, sshtylyov, gregkh, alexey.orishko, bjorn
  Cc: linux-usb, netdev, Wei Shuai

Infineon(now Intel) HSPA Modem platform NCM cannot support ARP. we can define a new common structure wwan_noarp_info.
Then more similiar NO ARP devices can be handled easily


Signed-off-by: Wei Shuai <cpuwolf@gmail.com>
---
 drivers/net/usb/cdc_ncm.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index 71b6e92..2d699b6 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -1155,6 +1155,20 @@ static const struct driver_info wwan_info = {
 	.tx_fixup = cdc_ncm_tx_fixup,
 };
 
+/* Same as wwan_info, but with IFF_NOARP  */
+static const struct driver_info wwan_noarp_info = {
+	.description = "Mobile Broadband Network Device (NO ARP)",
+	.flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT | FLAG_MULTI_PACKET
+			| FLAG_WWAN | FLAG_NOARP,
+	.bind = cdc_ncm_bind,
+	.unbind = cdc_ncm_unbind,
+	.check_connect = cdc_ncm_check_connect,
+	.manage_power = usbnet_manage_power,
+	.status = cdc_ncm_status,
+	.rx_fixup = cdc_ncm_rx_fixup,
+	.tx_fixup = cdc_ncm_tx_fixup,
+};
+
 static const struct usb_device_id cdc_devs[] = {
 	/* Ericsson MBM devices like F5521gw */
 	{ .match_flags = USB_DEVICE_ID_MATCH_INT_INFO
@@ -1194,6 +1208,13 @@ static const struct usb_device_id cdc_devs[] = {
 	  .driver_info = (unsigned long)&wwan_info,
 	},
 
+	/* Infineon(now Intel) HSPA Modem platform */
+	{ USB_DEVICE_AND_INTERFACE_INFO(0x1519, 0x0443,
+		USB_CLASS_COMM,
+		USB_CDC_SUBCLASS_NCM, USB_CDC_PROTO_NONE),
+	  .driver_info = (unsigned long)&wwan_noarp_info,
+	},
+
 	/* Generic CDC-NCM devices */
 	{ USB_INTERFACE_INFO(USB_CLASS_COMM,
 		USB_CDC_SUBCLASS_NCM, USB_CDC_PROTO_NONE),
-- 
1.7.6.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] CDC_NCM: adding support FLAG_NOARP for Infineon modem platform
       [not found]   ` <1358662329-8294-2-git-send-email-cpuwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2013-01-20 17:13     ` Sergei Shtylyov
  2013-01-21  2:20       ` Wei Shuai
  0 siblings, 1 reply; 7+ messages in thread
From: Sergei Shtylyov @ 2013-01-20 17:13 UTC (permalink / raw)
  To: Wei Shuai
  Cc: dcbw-H+wXaHxf7aLQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q,
	peter-Y+HMSxxDrH8, oneukum-l3A5Bk7waGM,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	alexey.orishko-0IS4wlFg1OjSUeElwK9/Pw, bjorn-yOkvZcmFvRU,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA

Hello.

On 20-01-2013 10:12, Wei Shuai wrote:

> Infineon(now Intel) HSPA Modem platform NCM cannot support ARP. we can define a new common structure wwan_noarp_info.

    Wrap your lines at 76-80 columns maximum please.

> Then more similiar NO ARP devices can be handled easily


> Signed-off-by: Wei Shuai <cpuwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
>   drivers/net/usb/cdc_ncm.c |   21 +++++++++++++++++++++
>   1 files changed, 21 insertions(+), 0 deletions(-)

> diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
> index 71b6e92..2d699b6 100644
> --- a/drivers/net/usb/cdc_ncm.c
> +++ b/drivers/net/usb/cdc_ncm.c
> @@ -1155,6 +1155,20 @@ static const struct driver_info wwan_info = {
>   	.tx_fixup = cdc_ncm_tx_fixup,
>   };
>
> +/* Same as wwan_info, but with IFF_NOARP  */

    FLAG_NOARP, you mean?

> +static const struct driver_info wwan_noarp_info = {
> +	.description = "Mobile Broadband Network Device (NO ARP)",
> +	.flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT | FLAG_MULTI_PACKET
> +			| FLAG_WWAN | FLAG_NOARP,

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] CDC_NCM: adding support FLAG_NOARP for Infineon modem platform
  2013-01-20 17:13     ` Sergei Shtylyov
@ 2013-01-21  2:20       ` Wei Shuai
       [not found]         ` <CACa7zynymtYN4OtTjVNTNdB23eNU4D-G+JqaTxjaPFekRHkRAg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Wei Shuai @ 2013-01-21  2:20 UTC (permalink / raw)
  To: Sergei Shtylyov
  Cc: dcbw, davem, peter, oneukum, gregkh, alexey.orishko, bjorn,
	linux-usb, netdev

The main problem is that these devices don't support ethernet.  They
support IP (v4 and _maybe_ v6) with an ethernet header.  Many of them
will do ARP (and IPv6 ND) as well to complete the picture, but some of
them don't and that's what these drivers try to deal with.

Note that most of the devices will run a DHCP server, so there is some
sort of IP broadcast support.  Whether that qualifies as proper ethernet
broadcast support is another question...

These devices are attempting to bridge an IP-only point-to-point
interface and an ethernet over USB interface, with the intention to make
the point-to-point interface look like ethernet to applications and
users. This is of course always going to be imperfect.  But I believe
that we should aim to help the firmware achive this goal when writing
drivers instead of working against it.  Setting IFF_NOARP and not
IFF_POINTTOPOINT is one way to do that. ---- by  Bjorn Mork <bjorn@mork.no>

2013/1/21, Sergei Shtylyov <sshtylyov@mvista.com>:
> Hello.
>
> On 20-01-2013 10:12, Wei Shuai wrote:
>
>> Infineon(now Intel) HSPA Modem platform NCM cannot support ARP. we can
>> define a new common structure wwan_noarp_info.
>
>     Wrap your lines at 76-80 columns maximum please.
>
>> Then more similiar NO ARP devices can be handled easily
>
>
>> Signed-off-by: Wei Shuai <cpuwolf@gmail.com>
>> ---
>>   drivers/net/usb/cdc_ncm.c |   21 +++++++++++++++++++++
>>   1 files changed, 21 insertions(+), 0 deletions(-)
>
>> diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
>> index 71b6e92..2d699b6 100644
>> --- a/drivers/net/usb/cdc_ncm.c
>> +++ b/drivers/net/usb/cdc_ncm.c
>> @@ -1155,6 +1155,20 @@ static const struct driver_info wwan_info = {
>>   	.tx_fixup = cdc_ncm_tx_fixup,
>>   };
>>
>> +/* Same as wwan_info, but with IFF_NOARP  */
>
>     FLAG_NOARP, you mean?
>
>> +static const struct driver_info wwan_noarp_info = {
>> +	.description = "Mobile Broadband Network Device (NO ARP)",
>> +	.flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT | FLAG_MULTI_PACKET
>> +			| FLAG_WWAN | FLAG_NOARP,
>
> WBR, Sergei
>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] CDC_NCM: adding support FLAG_NOARP for Infineon modem platform
       [not found]         ` <CACa7zynymtYN4OtTjVNTNdB23eNU4D-G+JqaTxjaPFekRHkRAg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2013-01-21  4:09           ` David Miller
  2013-01-21  8:22             ` Wei Shuai
  2013-01-21 11:33           ` Sergei Shtylyov
  1 sibling, 1 reply; 7+ messages in thread
From: David Miller @ 2013-01-21  4:09 UTC (permalink / raw)
  To: cpuwolf-Re5JQEeQqe8AvxtiuMwx3w
  Cc: sshtylyov-Igf4POYTYCDQT0dZR+AlfA, dcbw-H+wXaHxf7aLQT0dZR+AlfA,
	peter-Y+HMSxxDrH8, oneukum-l3A5Bk7waGM,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	alexey.orishko-0IS4wlFg1OjSUeElwK9/Pw, bjorn-yOkvZcmFvRU,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA

From: Wei Shuai <cpuwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Date: Mon, 21 Jan 2013 10:20:22 +0800

> The main problem is that these devices don't support ethernet.

He's saying your comment is referring to the wrong thing,
rather than saying anything against what your change is
doing.

Read his feedback carefully:

>>> +/* Same as wwan_info, but with IFF_NOARP  */
>>
>>     FLAG_NOARP, you mean?

He's saying your commnet is talking about FLAG_NOARP rather
than what the core code does with this flag, which is
translate into setting IFF_NOARP on the net device.

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] CDC_NCM: adding support FLAG_NOARP for Infineon modem platform
  2013-01-21  4:09           ` David Miller
@ 2013-01-21  8:22             ` Wei Shuai
  0 siblings, 0 replies; 7+ messages in thread
From: Wei Shuai @ 2013-01-21  8:22 UTC (permalink / raw)
  To: David Miller
  Cc: sshtylyov, dcbw, peter, oneukum, gregkh, alexey.orishko, bjorn,
	linux-usb, netdev

Thank you David. yes in the core driver, FLAG_NOARP will be translated
to IFF_NOARP

2013/1/21, David Miller <davem@davemloft.net>:
> From: Wei Shuai <cpuwolf@gmail.com>
> Date: Mon, 21 Jan 2013 10:20:22 +0800
>
>> The main problem is that these devices don't support ethernet.
>
> He's saying your comment is referring to the wrong thing,
> rather than saying anything against what your change is
> doing.
>
> Read his feedback carefully:
>
>>>> +/* Same as wwan_info, but with IFF_NOARP  */
>>>
>>>     FLAG_NOARP, you mean?
>
> He's saying your commnet is talking about FLAG_NOARP rather
> than what the core code does with this flag, which is
> translate into setting IFF_NOARP on the net device.
>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] CDC_NCM: adding support FLAG_NOARP for Infineon modem platform
       [not found]         ` <CACa7zynymtYN4OtTjVNTNdB23eNU4D-G+JqaTxjaPFekRHkRAg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2013-01-21  4:09           ` David Miller
@ 2013-01-21 11:33           ` Sergei Shtylyov
  1 sibling, 0 replies; 7+ messages in thread
From: Sergei Shtylyov @ 2013-01-21 11:33 UTC (permalink / raw)
  To: Wei Shuai
  Cc: dcbw-H+wXaHxf7aLQT0dZR+AlfA, davem-fT/PcQaiUtIeIZ0/mPfg9Q,
	peter-Y+HMSxxDrH8, oneukum-l3A5Bk7waGM,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	alexey.orishko-0IS4wlFg1OjSUeElwK9/Pw, bjorn-yOkvZcmFvRU,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA

Hello.

On 21-01-2013 6:20, Wei Shuai wrote:

> The main problem is that these devices don't support ethernet.  They
> support IP (v4 and _maybe_ v6) with an ethernet header.  Many of them
> will do ARP (and IPv6 ND) as well to complete the picture, but some of
> them don't and that's what these drivers try to deal with.
>
> Note that most of the devices will run a DHCP server, so there is some
> sort of IP broadcast support.  Whether that qualifies as proper ethernet
> broadcast support is another question...
>
> These devices are attempting to bridge an IP-only point-to-point
> interface and an ethernet over USB interface, with the intention to make
> the point-to-point interface look like ethernet to applications and
> users. This is of course always going to be imperfect.  But I believe
> that we should aim to help the firmware achive this goal when writing
> drivers instead of working against it.  Setting IFF_NOARP and not
> IFF_POINTTOPOINT is one way to do that. ---- by  Bjorn Mork <bjorn-yOkvZcmFvRU@public.gmane.org>

    Why are you replying with this long story to my simple patch comments? :-)

> 2013/1/21, Sergei Shtylyov <sshtylyov-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>:
>> Hello.

>> On 20-01-2013 10:12, Wei Shuai wrote:

>>> Infineon(now Intel) HSPA Modem platform NCM cannot support ARP. we can
>>> define a new common structure wwan_noarp_info.

>>      Wrap your lines at 76-80 columns maximum please.

>>> Then more similiar NO ARP devices can be handled easily

    s/NO/no/.

>>> Signed-off-by: Wei Shuai <cpuwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>> ---
>>>    drivers/net/usb/cdc_ncm.c |   21 +++++++++++++++++++++
>>>    1 files changed, 21 insertions(+), 0 deletions(-)

>>> diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
>>> index 71b6e92..2d699b6 100644
>>> --- a/drivers/net/usb/cdc_ncm.c
>>> +++ b/drivers/net/usb/cdc_ncm.c
>>> @@ -1155,6 +1155,20 @@ static const struct driver_info wwan_info = {
>>>    	.tx_fixup = cdc_ncm_tx_fixup,
>>>    };
>>>
>>> +/* Same as wwan_info, but with IFF_NOARP  */

>>      FLAG_NOARP, you mean?

>>> +static const struct driver_info wwan_noarp_info = {
>>> +	.description = "Mobile Broadband Network Device (NO ARP)",
>>> +	.flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT | FLAG_MULTI_PACKET
>>> +			| FLAG_WWAN | FLAG_NOARP,

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-01-21 11:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-20  6:12 [PATCH 1/2] usbnet: add flag FLAG_NOARP for usb net devices Wei Shuai
2013-01-20  6:12 ` [PATCH 2/2] CDC_NCM: adding support FLAG_NOARP for Infineon modem platform Wei Shuai
     [not found]   ` <1358662329-8294-2-git-send-email-cpuwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-01-20 17:13     ` Sergei Shtylyov
2013-01-21  2:20       ` Wei Shuai
     [not found]         ` <CACa7zynymtYN4OtTjVNTNdB23eNU4D-G+JqaTxjaPFekRHkRAg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-21  4:09           ` David Miller
2013-01-21  8:22             ` Wei Shuai
2013-01-21 11:33           ` Sergei Shtylyov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.