trouble with message exchange with Linux Ethernet over USB NIC bridged with Ethernet NIC

Discussion in 'Networking' started by Ermin, Jan 20, 2017.

  1. Ermin

    Ermin

    Joined:
    Jan 20, 2017
    Messages:
    1
    Likes Received:
    0
    Hi!

    I hope this is right place to post description of my problem although I believe it has also something to do with implementation of MAC Bridge Miniport driver?!

    Here comes description of problem.

    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 OID_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
     
    Ermin, Jan 20, 2017
    #1
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.