You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
RNDIS device class doesn't response to RNDIS_OID_802_3_PERMANENT_ADDRESS #250
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.
`
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;
Activity
ayedm1 commentedon Feb 11, 2026
Hi @py-ir0nf1st
can you try this fix with adding this snippet code in _ux_device_class_rndis_msg_query here:
usbx/common/usbx_device_classes/src/ux_device_class_rndis_msg_query.c
Line 327 in 515c9a4
`
case UX_DEVICE_CLASS_RNDIS_OID_802_3_PERMANENT_ADDRESS :
`
py-ir0nf1st commentedon Feb 12, 2026
@ayedm1 It works.
ayedm1 commentedon Feb 16, 2026
#251