RE: USB GADGET: have a question about usb2eth

From: Lipengcheng
Date: Mon Oct 17 2016 - 23:22:20 EST

> -----Original Message-----
> From: Felipe Balbi [mailto:balbi@xxxxxxxxxx]
> Sent: Monday, October 17, 2016 5:29 PM
> To: Lipengcheng; Peter Chen
> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: RE: USB GADGET: have a question about usb2eth
> Hi,
> (please, avoid top-posting:
> Lipengcheng <> writes:
> > Hi,
> > thank you for your suggestion.
> >
> > I have a question about usb2eth. In the function gen_ndis_set_resp of
> > the rndis.c, the value of *params->filter may be 0x20 from the pc set
> > command; Howerver the value is used cdc_filter =
> > dev->port_usb->cdc_filter in the function eth_start_xmit of the u_ether.c.
> > If we do not judge the RNDIS_PACKET_TYPE_PROMISCUOUS and the value is
> > 0x20, the broadcast packet can not send the pc win7; At the result,
> > the linux ping the win7 is slow an the first. At the same time, Why
> > are different value between RNDIS_PACKET_TYPE_PROMISCUOUS and
> because they are defined by different specifications. You should read both CDC specification from and RNDIS spec from Microsoft to
> understand the details of that.
Ok. I will understand the different both CDC specification from and RNDIS spec from Microsoft. They should have transformational rule in the linux code
between CDC spe and RNDIS spe. Through debugging, I found there has been no conversion about the filter. I feel a little problem. I will find the rule.
> > and USB_CDC_PACKET_TYPE_PROMISCUOUS is same, then the linux ping the
> > win7 is normal speed.
> I don't understand what's going on here. Care to describe which kernel you're using, which USB peripheral controller, what is the actual
> problem you're trying to solve?
VERSION = 3.18.20
USB peripheral controller: Synopsys HS OTG Linux Software Driver. It's not the standard linux code. But I think the controller do not have problem.
The probem is that I am using one controller board with Linux running on it. I want to interface my device to the Host computer (Windows OS) through USB.
I have driver ready at device side (linux) and the bridge has been established. The device side ping the Host computer is very slow at the first time. It spends
a few minutes. The problem is the first ping takes too long time. Now I have a way to quickly ping at the first , but I do not know the risk about the change.I will
continue debug the problem. If it is valuable, I will submit the kernel community.
Thanks very much!
> --
> Balbi

Best Regards
Pengcheng Li