|
Prev: How to let BDA driver (DVBT) work on vista beta 1
Next: Dynamically loading binaries in Kernel mode.
From: joelw on 28 Mar 2006 02:44 Okay I'm totally stumped. I'm working on RNDIS USB device firmware. I've followed everything in the RNDIS specification. Currently I can get device to show up as network adapter. I can set it's IP address, etc, but no network traffic shows up at my bulk end point. What is the magic sequence that starts network traffic flowing to my bulk endpoint? I figured it was REMOTE_NDIS_INDICATE_STATUS_MSG indicating RNDIS_STATUS_MEDIA_CONNECT. This has had no effect. USB Host is XP SP2. Help!!
From: Pankaj Garg on 28 Mar 2006 12:00 There is no magic sequence, once you successfully initialize your device, it should work. This might be due to you replying incorrectly to one of the OID requests. What are your supported OID list? Also, What happens if you do ping etc? Also initialize message has certain parameters like packet size etc, what do you set in there? -- Pankaj Garg This posting is provided "AS IS" with no warranties and confers no rights. "joelw" <joelw(a)discussions.microsoft.com> wrote in message news:9D5037DD-6B5E-457B-9B66-5F546CAA428E(a)microsoft.com... > Okay I'm totally stumped. > > I'm working on RNDIS USB device firmware. I've followed everything in the > RNDIS specification. Currently I can get device to show up as network > adapter. I can set it's IP address, etc, but no network traffic shows up at > my bulk end point. > > What is the magic sequence that starts network traffic flowing to my bulk > endpoint? > > I figured it was REMOTE_NDIS_INDICATE_STATUS_MSG indicating > RNDIS_STATUS_MEDIA_CONNECT. This has had no effect. > > USB Host is XP SP2. > > Help!! >
From: joelw on 28 Mar 2006 12:26 > There is no magic sequence, once you successfully initialize your device, it > should work. This might be due to you replying incorrectly to one of the OID > requests. What are your supported OID list? UINT RNdisMddSupportedOids[] = { OID_GEN_SUPPORTED_LIST, OID_GEN_HARDWARE_STATUS, OID_GEN_MEDIA_SUPPORTED, OID_GEN_MEDIA_IN_USE, OID_GEN_MAXIMUM_LOOKAHEAD, OID_GEN_MAXIMUM_FRAME_SIZE, OID_GEN_MAXIMUM_TOTAL_SIZE, OID_GEN_MAC_OPTIONS, OID_GEN_PROTOCOL_OPTIONS, OID_GEN_LINK_SPEED, OID_GEN_TRANSMIT_BUFFER_SPACE, OID_GEN_RECEIVE_BUFFER_SPACE, OID_GEN_TRANSMIT_BLOCK_SIZE, OID_GEN_RECEIVE_BLOCK_SIZE, OID_GEN_VENDOR_DESCRIPTION, OID_GEN_VENDOR_ID, OID_GEN_DRIVER_VERSION, OID_GEN_CURRENT_PACKET_FILTER, OID_GEN_CURRENT_LOOKAHEAD, OID_GEN_XMIT_OK, OID_GEN_RCV_OK, OID_GEN_XMIT_ERROR, OID_GEN_RCV_CRC_ERROR, OID_GEN_RCV_ERROR, OID_GEN_RCV_NO_BUFFER, OID_802_3_PERMANENT_ADDRESS, OID_802_3_CURRENT_ADDRESS, OID_802_3_MULTICAST_LIST, OID_802_3_MAXIMUM_LIST_SIZE, OID_802_3_RCV_ERROR_ALIGNMENT, OID_802_3_XMIT_ONE_COLLISION, OID_802_3_XMIT_MORE_COLLISIONS, OID_GEN_MAXIMUM_SEND_PACKETS, OID_GEN_VENDOR_DRIVER_VERSION, OID_GEN_MEDIA_CONNECT_STATUS, }; > Also, What happens if you do ping etc? Also initialize message has certain > parameters like packet size etc, what do you set in there? Ping does not trigger a packet, just more OID queries. I'm using WinCE 5.0 RNDIS code as working example. I can email Ellisys traces if interested. What does work (Linux Ethernet Gadget): I've traced the Linux Ethernet Gadget with Ellysis. It takes USB configuration 2. This driver starts recieving packets withing 2 seconds. Currently the only visible difference appears to be the USB config 2. Joel
From: Pankaj Garg on 28 Mar 2006 12:46 Your OID list seems to have all the required OIDs (though i will double check that later on). But since you are getting OIDs correctly but not any data messages this makes me suspect that the problem is either in your OID handling or INITIALIZE_CMPLT message handling. I wish i could be more specific but without source code, its hard to take a guess where the problem might be. Which OID do you get when you do a ping? This might provide some hint as to whats wrong. -- Pankaj Garg This posting is provided "AS IS" with no warranties and confers no rights. "joelw" <joelw(a)discussions.microsoft.com> wrote in message news:D14C851A-9F04-4EF6-A71C-A58C5C0482F8(a)microsoft.com... > > > There is no magic sequence, once you successfully initialize your device, it > > should work. This might be due to you replying incorrectly to one of the OID > > requests. What are your supported OID list? > > UINT RNdisMddSupportedOids[] = > { > OID_GEN_SUPPORTED_LIST, > OID_GEN_HARDWARE_STATUS, > OID_GEN_MEDIA_SUPPORTED, > OID_GEN_MEDIA_IN_USE, > OID_GEN_MAXIMUM_LOOKAHEAD, > OID_GEN_MAXIMUM_FRAME_SIZE, > OID_GEN_MAXIMUM_TOTAL_SIZE, > OID_GEN_MAC_OPTIONS, > OID_GEN_PROTOCOL_OPTIONS, > OID_GEN_LINK_SPEED, > OID_GEN_TRANSMIT_BUFFER_SPACE, > OID_GEN_RECEIVE_BUFFER_SPACE, > OID_GEN_TRANSMIT_BLOCK_SIZE, > OID_GEN_RECEIVE_BLOCK_SIZE, > OID_GEN_VENDOR_DESCRIPTION, > OID_GEN_VENDOR_ID, > OID_GEN_DRIVER_VERSION, > OID_GEN_CURRENT_PACKET_FILTER, > OID_GEN_CURRENT_LOOKAHEAD, > OID_GEN_XMIT_OK, > OID_GEN_RCV_OK, > OID_GEN_XMIT_ERROR, > OID_GEN_RCV_CRC_ERROR, > OID_GEN_RCV_ERROR, > OID_GEN_RCV_NO_BUFFER, > OID_802_3_PERMANENT_ADDRESS, > OID_802_3_CURRENT_ADDRESS, > OID_802_3_MULTICAST_LIST, > OID_802_3_MAXIMUM_LIST_SIZE, > OID_802_3_RCV_ERROR_ALIGNMENT, > OID_802_3_XMIT_ONE_COLLISION, > OID_802_3_XMIT_MORE_COLLISIONS, > OID_GEN_MAXIMUM_SEND_PACKETS, > OID_GEN_VENDOR_DRIVER_VERSION, > OID_GEN_MEDIA_CONNECT_STATUS, > }; > > > Also, What happens if you do ping etc? Also initialize message has certain > > parameters like packet size etc, what do you set in there? > > Ping does not trigger a packet, just more OID queries. I'm using WinCE 5.0 > RNDIS code as working example. > > I can email Ellisys traces if interested. > > What does work (Linux Ethernet Gadget): > I've traced the Linux Ethernet Gadget with Ellysis. It takes USB > configuration 2. This driver starts recieving packets withing 2 seconds. > Currently the only visible difference appears to be the USB config 2. > > > Joel
From: joelw on 28 Mar 2006 13:05 In the specification it states traffic should start after device recieves non-zero OID_GEN_CURRENT_PACKET_FILTER. This doesn't happen. Here's an example dialog. This shows up as Ethernet Adapter, but no network traffic: Host: 02 00 00 00 REMOTE_NDIS_INITIALIZE_MSG 18 00 00 00 MessageLength 02 00 00 00 RequestId 01 00 00 00 MajorVersion 00 00 00 00 MinorVersion 00 40 00 00 MaxTransferSize Device: 02 00 00 80 REMOTE_NDIS_INITIALIZE_CMPLT 34 00 00 00 MessageLength 02 00 00 00 RequestId 00 00 00 00 Status 01 00 00 00 MajorVersion 00 00 00 00 MinorVersion 01 00 00 00 DeviceFlags 00 00 00 00 Medium 20 00 00 00 MaxPacketsPerTransfer 40 00 00 00 MaxTransferSize 00 00 00 00 PacketAlignmentFactor 00 00 00 00 AFListOffset 00 00 00 00 AFListSize Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 1C 00 00 00 MessageLength 03 00 00 00 RequestId 01 01 01 00 Oid 00 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 7C 00 00 00 MessageLength 03 00 00 00 RequestId 00 00 00 00 Status 64 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset 01 01 01 00 OID_GEN_SUPPORTED_LIST 02 01 01 00 OID_GEN_HARDWARE_STATUS 03 01 01 00 OID_GEN_MEDIA_SUPPORTED 04 01 01 00 OID_GEN_MEDIA_IN_USE 06 01 01 00 OID_GEN_MAXIMUM_FRAME_SIZE 07 01 01 00 OID_GEN_LINK_SPEED 0A 01 01 00 OID_GEN_TRANSMIT_BLOCK_SIZE 0B 01 01 00 OID_GEN_RECEIVE_BLOCK_SIZE 0C 01 01 00 OID_GEN_VENDOR_ID 0D 01 01 00 OID_GEN_VENDOR_DESCRIPTION 0E 01 01 00 OID_GEN_CURRENT_PACKET_FILTER 11 01 01 00 OID_GEN_MAXIMUM_TOTAL_SIZE 14 01 01 00 OID_GEN_MEDIA_CONNECT_STATUS 01 01 02 00 OID_GEN_XMIT_OK 02 01 02 00 OID_GEN_RCV_OK 03 01 02 00 OID_GEN_XMIT_ERROR 04 01 02 00 OID_GEN_RCV_ERROR 05 01 02 00 OID_GEN_RCV_NO_BUFFER 01 01 01 01 OID_802_3_PERMANENT_ADDRESS 02 01 01 01 OID_802_3_CURRENT_ADDRESS 03 01 01 01 OID_802_3_MULTICAST_LIST 04 01 01 01 OID_802_3_MAXIMUM_LIST_SIZE 01 01 02 01 OID_802_3_RCV_ERROR_ALIGNMENT 02 01 02 01 OID_802_3_XMIT_ONE_COLLISION 03 01 02 01 OID_802_3_XMIT_MORE_COLLISIONS Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 20 00 00 00 MessageLength 04 00 00 00 RequestId 06 01 01 00 OID_GEN_MAXIMUM_FRAME_SIZE 04 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1C 00 00 00 MessageLength 04 00 00 00 RequestId 00 00 00 00 Status 04 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset DC 05 00 00 Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 20 00 00 00 MessageLength 05 00 00 00 RequestId 04 01 01 01 OID_802_3_MAXIMUM_LIST_SIZE 04 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1C 00 00 00 MessageLength 05 00 00 00 RequestId 00 00 00 00 Status 04 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset 08 00 00 00 Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 22 00 00 00 MessageLength 06 00 00 00 RequestId 02 01 01 01 OID_802_3_CURRENT_ADDRESS 06 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 28 A1 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1E 00 00 00 MessageLength 06 00 00 00 RequestId 00 00 00 00 Status 06 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset 80 EC E2 34 80 EC Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 20 00 00 00 MessageLength 07 00 00 00 RequestId 06 01 01 00 OID_GEN_MAXIMUM_FRAME_SIZE 04 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 01 00 00 00 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1C 00 00 00 MessageLength 07 00 00 00 RequestId 00 00 00 00 Status 04 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset DC 05 00 00 1,500 Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 20 00 00 00 MessageLength 08 00 00 00 RequestId 11 01 01 00 OID_GEN_MAXIMUM_TOTAL_SIZE 04 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1C 00 00 00 MessageLength 08 00 00 00 RequestId 00 00 00 00 Status 04 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset EA 05 00 00 1,514 Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 22 00 00 00 MessageLength 09 00 00 00 RequestId 02 01 01 01 OID_802_3_CURRENT_ADDRESS 06 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 28 A1 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1E 00 00 00 MessageLength 09 00 00 00 RequestId 00 00 00 00 Status 06 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset 80 EC E2 34 80 EC Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 22 00 00 00 MessageLength 0A 00 00 00 RequestId 02 01 01 01 OID_802_3_CURRENT_ADDRESS 06 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 00 00 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1E 00 00 00 MessageLength 0A 00 00 00 RequestId 00 00 00 00 Status 06 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset 80 EC E2 34 80 EC Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 20 00 00 00 MessageLength 0B 00 00 00 RequestId 06 01 01 00 OID_GEN_MAXIMUM_FRAME_SIZE 04 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1C 00 00 00 MessageLength 0B 00 00 00 RequestId 00 00 00 00 Status 04 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset DC 05 00 00 1,500 Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 20 00 00 00 MessageLength 0C 00 00 00 RequestId 11 01 01 00 OID_GEN_MAXIMUM_TOTAL_SIZE 04 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1C 00 00 00 MessageLength 0C 00 00 00 RequestId 00 00 00 00 Status 04 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset EA 05 00 00 1,514 Host: 04 00 00 00 REMOTE_NDIS_QUERY_MSG 20 00 00 00 MessageLength 0D 00 00 00 RequestId 07 01 01 00 OID_GEN_LINK_SPEED 04 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 00 00 00 00 Device: 04 00 00 80 REMOTE_NDIS_QUERY_CMPLT 1C 00 00 00 MessageLength 0D 00 00 00 RequestId 00 00 00 00 Status 04 00 00 00 InformationBufferLength 10 00 00 00 InformationBufferOffset A0 86 01 00 100M Host: 05 00 00 00 REMOTE_NDIS_SET_MSG 20 00 00 00 MessageLength 0E 00 00 00 RequestId 0E 01 01 00 OID_GEN_CURRENT_PACKET_FILTER 04 00 00 00 InformationBufferLength 14 00 00 00 InformationBufferOffset 00 00 00 00 DeviceVcHandle 09 00 00 00 Host: 08 00 00 00 REMOTE_NDIS_KEEPALIVE_MSG 0C 00 00 00 MessageLength 0F 00 00 00 RequestId Device: 08 00 00 80 REMOTE_NDIS_KEEPALIVE_CMPLT 10 00 00 00 MessageLength 0F 00 00 00 RequestId 00 00 00 00 Status Host: 06 00 00 00 REMOTE_NDIS_RESET_MSG 0C 00 00 00 MessageLength 00 00 00 00 Reserved Host: 08 00 00 00 REMOTE_NDIS_KEEPALIVE_MSG 0C 00 00 00 MessageLength 11 00 00 00 RequestId Device: 08 00 00 80 REMOTE_NDIS_KEEPALIVE_CMPLT 10 00 00 00 MessageLength 11 00 00 00 RequestId 00 00 00 00 Status Host: 08 00 00 00 REMOTE_NDIS_KEEPALIVE_MSG 0C 00 00 00 MessageLength 12 00 00 00 RequestId Device: 08 00 00 80 REMOTE_NDIS_KEEPALIVE_CMPLT 10 00 00 00 MessageLength 12 00 00 00 RequestId 00 00 00 00 Status Host: 08 00 00 00 REMOTE_NDIS_KEEPALIVE_MSG 0C 00 00 00 MessageLength 13 00 00 00 RequestId Device: 08 00 00 80 REMOTE_NDIS_KEEPALIVE_CMPLT 10 00 00 00 MessageLength 13 00 00 00 RequestId 00 00 00 00 Status
|
Next
|
Last
Pages: 1 2 Prev: How to let BDA driver (DVBT) work on vista beta 1 Next: Dynamically loading binaries in Kernel mode. |