HomeFreeBSD

MFC: r285909, r285913 (partial)

Description

MFC: r285909, r285913 (partial)

  • Probe UICLASS_CDC/UISUBCLASS_ABSTRACT_CONTROL_MODEL/0xff again. This variant of Microsoft RNDIS, i. e. their unofficial version of CDC ACM, has been disabled in r261544 (r262362 in stable/9) for resolving a conflict with umodem(4). Eventually, in r275790 (r276244 in stable/9) that problem was dealt with in the right way. However, r275790 failed to put probing of RNDIS devices in question back.
  • Initialize the device prior to querying it, as required by the RNDIS specification. Otherwise already determining the MAC address may fail rightfully.
  • On detach, halt the device again.
  • Use UCDC_SEND_ENCAPSULATED_{COMMAND,RESPONSE}. While these macros are resolving to the same values as UR_{CLEAR_FEATURE,GET_STATUS}, the former set is way more appropriate in this context.
  • Report unknown - rather: unimplemented - events unconditionally and not just in debug mode. This ensures that we'll get some hint of what is going wrong instead of the driver silently failing.
  • Deal with the Microsoft ActiveSync requirement of using an input buffer the size of the expected reply or larger - except for variably sized replies - when querying a device.
  • Fix some pointless NULL checks, style bugs etc.

This changes allow urndis(4) to communicate with a Microsoft-certified
USB RNDIS test token.

Details

Provenance
mariusAuthored on
Parents
rS292792: MFC: r285909, r285913 (partial)
Branches
Unknown
Tags
Unknown