Skip to content

RNDIS device class doesn't response to RNDIS_OID_802_3_PERMANENT_ADDRESS #250

Closed

Description

@py-ir0nf1st

I am implementing a full speed RNDIS device on STM32.
When connecting the device to a Linux host, the device couldn't be enumerated by the host.

dmesg on the host gave the following messages:
[ 4552.054215] usb 1-1.3: new full-speed USB device number 12 using dwc_otg
[ 4552.174704] usb 1-1.3: New USB device found, idVendor=0483, idProduct=5742, bcdDevice= 2.00
[ 4552.174739] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4552.174756] usb 1-1.3: Product: STM32 RNDIS Device
[ 4552.174769] usb 1-1.3: Manufacturer: STMicroelectronics
[ 4552.174782] usb 1-1.3: SerialNumber: 000000000001
[ 4552.198983] rndis_host 1-1.3:1.0: RNDIS_MSG_QUERY(0x01010101) invalid response - off 16 len 4
[ 4552.199034] rndis_host 1-1.3:1.0: rndis get ethaddr, -33
[ 4552.204514] rndis_host 1-1.3:1.0: probe with driver rndis_host failed with error -33

Kernel version on the host:
6.12.25+rpt-rpi-v8

After checking the code in ux_device_class_rndis_msg_query.c/_ux_device_class_rndis_msg_query, oid "UX_DEVICE_CLASS_RNDIS_OID_802_3_PERMANENT_ADDRESS" is not handled indeed.
But the OID is mandatory(according to the comment in ux_device_class_rndis_initialize.c) and it presents in ux_device_class_rndis_oid_supported_list.

Activity

  1. ayedm1 commented on Feb 11, 2026

    @ayedm1
    Contributor

    Hi @py-ir0nf1st

    can you try this fix with adding this snippet code in _ux_device_class_rndis_msg_query here:

    `
    case UX_DEVICE_CLASS_RNDIS_OID_802_3_PERMANENT_ADDRESS :

        /* Save the Hardware address in the return message.   */
        _ux_utility_memory_copy(rndis_response + UX_DEVICE_CLASS_RNDIS_CMPLT_QUERY_INFO_BUFFER,
                                rndis -> ux_slave_class_rndis_remote_node_id, UX_DEVICE_CLASS_RNDIS_NODE_ID_LENGTH); /* Use case of memcpy is verified. */
    
        /* Set the total response length.  */
        rndis_response_length = UX_DEVICE_CLASS_RNDIS_NODE_ID_LENGTH;
    
        break;
    

    `

  2. py-ir0nf1st commented on Feb 12, 2026

    @py-ir0nf1st
    Author

    @ayedm1 It works.

  3. ayedm1 commented on Feb 16, 2026

    @ayedm1
    Contributor
  4. moved this to In review in ThreadX Roadmapon Feb 17, 2026
  5. moved this from In review to Done in ThreadX Roadmapon Mar 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions