Win 7 – trouble with Linux ETH over USB NIC in bridge w/ Win ETH NIC

Home Forums Discussions General Discussion Win 7 – trouble with Linux ETH over USB NIC in bridge w/ Win ETH NIC

This topic contains 2 replies, has 2 voices, and was last updated by  ermin 1 month ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #9564

    ermin
    Participant

    Hi!

    I have a Linux device that exposes it’s network interface over USB port and in order to interface with Windows host it makes use of composite gadget driver offering RNDIS protocol for that purposes.

    I made Windows driver installation that relies on netrndis.inf driver installation file and for linux device’s Ethernet over USB NIC I prepared INF file, based on template for NDIS 6 protcol, that relates specifically to device’s Vendor and Product ID data.

    Driver installs and runs correctly as far as I can see.

    When device’s USB NIC is kept unabridged I can get DHCP assigned address on linux side while having DHCP server running on Windows side for that network interface.

    But putting device’s USB NIC to bridge with Ethernet adapter on Windows side prevents NIC exposed on Linux side to obtain DHCP IP address.

    As far as I can conclude problem is in not receiving proper value for OID_GEN_CURRENT_PACKET_FILTER on Linux side of USB NIC.

    For example when having unabridged NIC and after issuing command:

    ifup usb0

    , I get this trace in kernel’s messages file:

    Jan 9 15:39:31 (none) kern.debug kernel: gen_ndis_set_resp: RNDIS_OID_GEN_CURRENT_PACKET_FILTER 00000009
    Jan 9 15:39:31 (none) kern.debug kernel: gen_ndis_set_resp: RNDIS_OID_GEN_CURRENT_PACKET_FILTER 0000000b
    Jan 9 15:39:31 (none) kern.debug kernel: gen_ndis_set_resp: RNDIS_OID_GEN_CURRENT_PACKET_FILTER 0000000f

    When having interface bridged on Windows side and after issuing command:

    ifup usb0

    , I get this:

    Jan 9 15:54:14 (none) kern.debug kernel: gen_ndis_set_resp: RNDIS_OID_GEN_CURRENT_PACKET_FILTER 00000020
    Jan 9 15:54:14 (none) kern.debug kernel: gen_ndis_set_resp: RNDIS_OID_GEN_CURRENT_PACKET_FILTER 00000000
    Jan 9 15:56:02 (none) kern.debug kernel: gen_ndis_set_resp: RNDIS_OID_GEN_CURRENT_PACKET_FILTER 00000002
    Jan 9 15:56:07 (none) kern.debug kernel: gen_ndis_set_resp: RNDIS_OID_GEN_CURRENT_PACKET_FILTER 00000020

    It should be noted that maximum possible value for ID_GEN_CURRENT_PACKET_FILTER should be 0x0f and not 0x20, and I think that’s the problem and my guess is that it’s coming from MAC Bridge Miniport driver!

    Does anyone know is there’s some workaround for this issue like adding some registry keys for MAC Bridge Miniport driver installation so Linux kernel driver for composite gadget receives correct value for OID_GEN_CURRENT_PACKET_FILTER?

    Thanks!

    Best regards,
    Ermin

    #9565

    Vadim Smirnov
    Moderator

    Hmm, I don’t think you can alter Windows native bridge behavior, however you can try an alternative network bridging approach suggested here https://www.ntkernel.com/bridging-networks-with-windows-packet-filter/. It should work for your setup.

    If your task is connecting RNDIS USB device to laptop network then you can also use NAT approach instead bridge. I have had such experience in the past with USB connected NetTalk DUO device.

    And the last, you can try to play around OID_GEN_CURRENT_PACKET_FILTER by setting it directly for underlying USB RNDIS miniport. WinpkFilter driver allows you to bind above and below Windows native Ethernet Bridge, so you can bind to USB RNDIS miniport directly even with enabled bridging. And then try try set different filter for USB RNDIS by using CNdisApi:SetHwPacketFilter. Al least you can find out if setting different packet filter can help here.

    #9566

    ermin
    Participant

    Hi, Vadim!

    Thank you for the reply.

    I’ll see what can be done with suggestions you gave and get back eventually if there’s something I’m missing to come to final solution.

    Best regards,
    Ermin

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.