From nobody Thu May 16 07:48:21 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+108040+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+108040+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1693015099; cv=none; d=zohomail.com; s=zohoarc; b=HYSUAaAC1/53J/9TyPB7xeHvkBHbGqJlcNJKf1q4u8K+k9cpSQmlyzjEPnnTrFBtb1R3ovy5rZYG1AFlHzKqWu8nSiU1PveBxQk1ieg269+jA9+nLHN3Th/ujGcw83m3EzYuEudUY5Ncv7RnFs5qk5Lsi3LSAhRpWdeo9unmCxc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1693015099; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=9HrC60EX1cymtEsFhhGsQk6uAJjU2I0dHMvBCWHDrR8=; b=lnMyW1ggLOveUT9vtTwdnvCvvUzsAj3MhcilB0DeWCrWz0cTTkdzaVtO7KAwSa2mRcqprL/vp4zks5fzKElRwZvY9u1ymPHkqYD2cz9Cb5jQin819fOL92AL7Zx3xjI9JH9cP5i236bX9mX/jy5PksSAaWtk3JH5sTScDYgmDTQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+108040+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 169301509945524.414935801645356; Fri, 25 Aug 2023 18:58:19 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=eNA/VWN0fibS1gvdet2cwlFcGlHKV0dlYsAbseFBdVc=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20140610; t=1693015099; v=1; b=oEPDtytq5vBA7y2QHEUng/oKIyuUdjJjaSV48oh5JCcay3Oj3Cpj8uNnPaUjJbocxzU7TwJu 6I6k+1+vUqts52NEWcSvKwdXShXaX3r4wiylvFxYHkkOv5HDoSvSEzpEeKm/ss+XX3y4R7fhOUK Dli1oZYc+KaBGlmSE51oQmTA= X-Received: by 127.0.0.2 with SMTP id Kf4LYY1788612x3hdq2l4Gg5; Fri, 25 Aug 2023 18:58:19 -0700 X-Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by mx.groups.io with SMTP id smtpd.web10.1692.1693015098206580141 for ; Fri, 25 Aug 2023 18:58:18 -0700 X-Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-50043cf2e29so2229595e87.2 for ; Fri, 25 Aug 2023 18:58:17 -0700 (PDT) X-Gm-Message-State: CONEZPGjQANCxdsMamiJD5CWx1787277AA= X-Google-Smtp-Source: AGHT+IFALut+4ojY2fWXayRbsL1SbMmPMqnU7ypqkG5J4Zs4BVeALFld6COnU2kc0uKebwA3/CEFYw== X-Received: by 2002:a05:6512:2524:b0:4fe:5a4b:911d with SMTP id be36-20020a056512252400b004fe5a4b911dmr15128797lfb.64.1693015096058; Fri, 25 Aug 2023 18:58:16 -0700 (PDT) X-Received: from localhost.localdomain ([79.164.221.98]) by smtp.gmail.com with ESMTPSA id a5-20020a19f805000000b0050078c9b53asm509879lff.231.2023.08.25.18.58.15 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 25 Aug 2023 18:58:15 -0700 (PDT) From: "Mike Maslenkin" To: devel@edk2.groups.io Cc: richardho@ami.com, rebecca@bsdio.com, Mike Maslenkin Subject: [edk2-devel] [PATCH 1/2] MdeModulePkg: UsbNetwork: fix Ethernet functional descriptor processing Date: Sat, 26 Aug 2023 04:57:59 +0300 Message-Id: <20230826015800.74524-2-mike.maslenkin@gmail.com> In-Reply-To: <20230826015800.74524-1-mike.maslenkin@gmail.com> References: <20230826015800.74524-1-mike.maslenkin@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mike.maslenkin@gmail.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1693015099922100005 Content-Type: text/plain; charset="utf-8" This patch fixes wrong condition because of UINT16 value to integer promotion. NumberMcFilters is UINT16 value, so when bitwise shift operator applied to small integer type, the operation is preceded by integral promotion. This is described in MISRA-C:2004 guideline as Rule 10.5: "If the bitwise operators ~ and << are applied to an operand of underlying type unsigned char or unsigned short, the result shall be immediately cast to the underlying type of the operand." A simple fix for this issue would be the following: if ((UINT16)(UsbEthFunDescriptor.NumberMcFilters << 1) =3D=3D 0) But this patch proposes to use bitwise AND operation with a proper bit mask rather than shifting to prevent similar mistakes in future. Cc: Richard Ho Cc: Rebecca Cran Signed-off-by: Mike Maslenkin Reviewed-by: Rebecca Cran --- MdeModulePkg/Bus/Usb/UsbNetwork/NetworkCommon/PxeFunction.c | 2 +- MdeModulePkg/Bus/Usb/UsbNetwork/UsbCdcEcm/UsbEcmFunction.c | 2 +- MdeModulePkg/Bus/Usb/UsbNetwork/UsbCdcNcm/UsbNcmFunction.c | 2 +- MdeModulePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndisFunction.c | 4 ++-- MdeModulePkg/Include/Protocol/UsbEthernetProtocol.h | 2 ++ 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/MdeModulePkg/Bus/Usb/UsbNetwork/NetworkCommon/PxeFunction.c b/= MdeModulePkg/Bus/Usb/UsbNetwork/NetworkCommon/PxeFunction.c index daa30f081500..62df4e92ea01 100644 --- a/MdeModulePkg/Bus/Usb/UsbNetwork/NetworkCommon/PxeFunction.c +++ b/MdeModulePkg/Bus/Usb/UsbNetwork/NetworkCommon/PxeFunction.c @@ -829,7 +829,7 @@ SetFilter ( } =20 Nic->UsbEth->UsbEthFunDescriptor (Nic->UsbEth, &UsbEthFunDescriptor); - if ((UsbEthFunDescriptor.NumberMcFilters << 1) =3D=3D 0) { + if ((UsbEthFunDescriptor.NumberMcFilters & MAC_FILTERS_MASK) =3D=3D 0)= { Nic->RxFilter |=3D PXE_OPFLAGS_RECEIVE_FILTER_ALL_MULTICAST; Nic->UsbEth->SetUsbEthPacketFilter (Nic->UsbEth, Nic->RxFilter); } else { diff --git a/MdeModulePkg/Bus/Usb/UsbNetwork/UsbCdcEcm/UsbEcmFunction.c b/M= deModulePkg/Bus/Usb/UsbNetwork/UsbCdcEcm/UsbEcmFunction.c index 63003e07ff52..29f4508a38ce 100644 --- a/MdeModulePkg/Bus/Usb/UsbNetwork/UsbCdcEcm/UsbEcmFunction.c +++ b/MdeModulePkg/Bus/Usb/UsbNetwork/UsbCdcEcm/UsbEcmFunction.c @@ -628,7 +628,7 @@ SetUsbEthMcastFilter ( return Status; } =20 - if ((UsbEthFunDescriptor.NumberMcFilters << 1) =3D=3D 0) { + if ((UsbEthFunDescriptor.NumberMcFilters & MAC_FILTERS_MASK) =3D=3D 0) { return EFI_UNSUPPORTED; } =20 diff --git a/MdeModulePkg/Bus/Usb/UsbNetwork/UsbCdcNcm/UsbNcmFunction.c b/M= deModulePkg/Bus/Usb/UsbNetwork/UsbCdcNcm/UsbNcmFunction.c index 2a2454f466f7..baa2225bf8a8 100644 --- a/MdeModulePkg/Bus/Usb/UsbNetwork/UsbCdcNcm/UsbNcmFunction.c +++ b/MdeModulePkg/Bus/Usb/UsbNetwork/UsbCdcNcm/UsbNcmFunction.c @@ -714,7 +714,7 @@ SetUsbEthMcastFilter ( return Status; } =20 - if ((UsbEthFunDescriptor.NumberMcFilters << 1) =3D=3D 0) { + if ((UsbEthFunDescriptor.NumberMcFilters & MAC_FILTERS_MASK) =3D=3D 0) { return EFI_UNSUPPORTED; } =20 diff --git a/MdeModulePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndisFunction.c b/= MdeModulePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndisFunction.c index b3632233add1..2c0dcae4cf96 100644 --- a/MdeModulePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndisFunction.c +++ b/MdeModulePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndisFunction.c @@ -661,7 +661,7 @@ SetUsbRndisMcastFilter ( return Status; } =20 - if ((UsbEthFunDescriptor.NumberMcFilters << 1) =3D=3D 0) { + if ((UsbEthFunDescriptor.NumberMcFilters & MAC_FILTERS_MASK) =3D=3D 0) { return EFI_UNSUPPORTED; } =20 @@ -856,7 +856,7 @@ RndisUndiReceiveFilter ( } =20 Nic->UsbEth->UsbEthFunDescriptor (Nic->UsbEth, &UsbEthFunDescriptor); - if ((UsbEthFunDescriptor.NumberMcFilters << 1) =3D=3D 0) { + if ((UsbEthFunDescriptor.NumberMcFilters & MAC_FILTERS_MASK) =3D=3D 0)= { Nic->RxFilter |=3D PXE_OPFLAGS_RECEIVE_FILTER_ALL_MULTICAST; DEBUG ((DEBUG_INFO, "SetUsbEthPacketFilter Nic %lx Nic->UsbEth %lx "= , Nic, Nic->UsbEth)); Nic->UsbEth->SetUsbEthPacketFilter (Nic->UsbEth, Nic->RxFilter); diff --git a/MdeModulePkg/Include/Protocol/UsbEthernetProtocol.h b/MdeModul= ePkg/Include/Protocol/UsbEthernetProtocol.h index 800945d4b397..4cc2cee1167d 100644 --- a/MdeModulePkg/Include/Protocol/UsbEthernetProtocol.h +++ b/MdeModulePkg/Include/Protocol/UsbEthernetProtocol.h @@ -42,6 +42,8 @@ typedef struct _EDKII_USB_ETHERNET_PROTOCOL EDKII_USB_ETH= ERNET_PROTOCOL; #define NETWORK_CONNECTED 0x01 #define NETWORK_DISCONNECT 0x00 =20 +#define MAC_FILTERS_MASK 0x7FFF + // USB Header functional Descriptor typedef struct { UINT8 FunctionLength; --=20 2.32.0 (Apple Git-132) -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108040): https://edk2.groups.io/g/devel/message/108040 Mute This Topic: https://groups.io/mt/100968487/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Thu May 16 07:48:21 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+108041+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+108041+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1693015099; cv=none; d=zohomail.com; s=zohoarc; b=dSjx3wBWFhxi2bWIwu78xlMjxa/VIYD+8opV3BEMyfpC5TaLJynkyAIMPLITJKripbiFMiLah38HyYW3P/LoJ7RNqt/sulSFI6Pz1g/lD+8xRWtpJSfz4UC5wYKdGoHkP6KwhtazhJd3CsVyYZe/Y2EtVEaeDvwUeX/ID49fCYo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1693015099; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=jpMwhLSoA0f5Sspho7aqCQR8iar0kdgWOa1yfA3OOiQ=; b=icLpHjZkRFk6Sw+ZgxKSDj+eY73cuHFVjtvjB3Z5BtKvQ6pLkDeGT3bmBE2OI5XX9wpWvc6njh9gXHXPLQdnLcHC62njcaCQQxkzXS/zxCuiGsM3R016QFqwSQBKnJRQFyUwYglQiv1xoUhF+PbjXN7kfef466WmjZW2WPSFNbY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+108041+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1693015099925860.6946101871536; Fri, 25 Aug 2023 18:58:19 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=T5I/laUEl5Vi2kQy3eJDcN+REb5IS8kRIk0u4zZWjKI=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20140610; t=1693015099; v=1; b=s1aT/FlXjMCg0EH5HZSDwXwJkGXHhIpE4nNxC1JC8YXTUKTov5J2K2lflBGHwY1orajt1oUh J9b1w34L0bjpKkCG+ZAnzWJS/b+id+/F/v3qsQDW6W3Pfp7CBh7GuhHDx9K2kZIdc9smpIT+ZY+ VasPsvxGzEqpntJo4Nk2VBVo= X-Received: by 127.0.0.2 with SMTP id OQYMYY1788612xNZCltediz9; Fri, 25 Aug 2023 18:58:19 -0700 X-Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) by mx.groups.io with SMTP id smtpd.web11.1673.1693015098758793516 for ; Fri, 25 Aug 2023 18:58:19 -0700 X-Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-4ff8cf11b90so2334163e87.1 for ; Fri, 25 Aug 2023 18:58:18 -0700 (PDT) X-Gm-Message-State: y3kSzPYIYnY1M38suABC1Q4wx1787277AA= X-Google-Smtp-Source: AGHT+IHVssFj5YMsP9ifZ8arhlvBlnXsiQzfLqmKxfZBgHQBdRKySq1YVjKp3R/tSAAjDjPx/0apbw== X-Received: by 2002:ac2:4e89:0:b0:4ff:8a04:b251 with SMTP id o9-20020ac24e89000000b004ff8a04b251mr14010438lfr.50.1693015096826; Fri, 25 Aug 2023 18:58:16 -0700 (PDT) X-Received: from localhost.localdomain ([79.164.221.98]) by smtp.gmail.com with ESMTPSA id a5-20020a19f805000000b0050078c9b53asm509879lff.231.2023.08.25.18.58.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 25 Aug 2023 18:58:16 -0700 (PDT) From: "Mike Maslenkin" To: devel@edk2.groups.io Cc: richardho@ami.com, rebecca@bsdio.com, Mike Maslenkin Subject: [edk2-devel] [PATCH 2/2] MdeModulePkg: UsbRndis: get rid of magic values Date: Sat, 26 Aug 2023 04:58:00 +0300 Message-Id: <20230826015800.74524-3-mike.maslenkin@gmail.com> In-Reply-To: <20230826015800.74524-1-mike.maslenkin@gmail.com> References: <20230826015800.74524-1-mike.maslenkin@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mike.maslenkin@gmail.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1693015101343100009 Content-Type: text/plain; charset="utf-8" Replace magic values used for checking Base Class, SubClass and Protocol fields of USB Interface Descriptor. Add definitions for Base Class EFh (Miscellaneous) and RNDIS subclass. These definitions were taken from https://www.usb.org/defined-class-codes Cc: Richard Ho Cc: Rebecca Cran Signed-off-by: Mike Maslenkin Reviewed-by: Rebecca Cran --- .../Bus/Usb/UsbNetwork/UsbRndis/UsbRndis.c | 42 +++++++++---------- .../Include/Protocol/UsbEthernetProtocol.h | 4 ++ 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/MdeModulePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndis.c b/MdeModul= ePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndis.c index 056b0ff0fd8e..cc8e076c0a12 100644 --- a/MdeModulePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndis.c +++ b/MdeModulePkg/Bus/Usb/UsbNetwork/UsbRndis/UsbRndis.c @@ -40,15 +40,15 @@ IsSupportedDevice ( } =20 // Check specific device/RNDIS and CDC-DATA - if (((InterfaceDescriptor.InterfaceClass =3D=3D 0x2) && - (InterfaceDescriptor.InterfaceSubClass =3D=3D 0x2) && - (InterfaceDescriptor.InterfaceProtocol =3D=3D 0xFF)) || \ - ((InterfaceDescriptor.InterfaceClass =3D=3D 0xEF) && - (InterfaceDescriptor.InterfaceSubClass =3D=3D 0x4) && - (InterfaceDescriptor.InterfaceProtocol =3D=3D 0x1)) || \ - ((InterfaceDescriptor.InterfaceClass =3D=3D 0xA) && - (InterfaceDescriptor.InterfaceSubClass =3D=3D 0x0) && - (InterfaceDescriptor.InterfaceProtocol =3D=3D 0x00)) + if (((InterfaceDescriptor.InterfaceClass =3D=3D USB_CDC_CLASS) && + (InterfaceDescriptor.InterfaceSubClass =3D=3D USB_CDC_ACM_SUBCLASS)= && + (InterfaceDescriptor.InterfaceProtocol =3D=3D USB_VENDOR_PROTOCOL))= || \ + ((InterfaceDescriptor.InterfaceClass =3D=3D USB_MISC_CLASS) && + (InterfaceDescriptor.InterfaceSubClass =3D=3D USB_RNDIS_SUBCLASS) && + (InterfaceDescriptor.InterfaceProtocol =3D=3D USB_RNDIS_ETHERNET_PR= OTOCOL)) || \ + ((InterfaceDescriptor.InterfaceClass =3D=3D USB_CDC_DATA_CLASS) && + (InterfaceDescriptor.InterfaceSubClass =3D=3D USB_CDC_DATA_SUBCLASS= ) && + (InterfaceDescriptor.InterfaceProtocol =3D=3D USB_NO_CLASS_PROTOCOL= )) ) { return TRUE; @@ -79,12 +79,12 @@ IsRndisInterface ( } =20 // Check for specific device/RNDIS and CDC-DATA - if (((InterfaceDescriptor.InterfaceClass =3D=3D 0x2) && - (InterfaceDescriptor.InterfaceSubClass =3D=3D 0x2) && - (InterfaceDescriptor.InterfaceProtocol =3D=3D 0xFF)) || \ - ((InterfaceDescriptor.InterfaceClass =3D=3D 0xEF) && - (InterfaceDescriptor.InterfaceSubClass =3D=3D 0x4) && - (InterfaceDescriptor.InterfaceProtocol =3D=3D 0x1)) + if (((InterfaceDescriptor.InterfaceClass =3D=3D USB_CDC_CLASS) && + (InterfaceDescriptor.InterfaceSubClass =3D=3D USB_CDC_ACM_SUBCLASS)= && + (InterfaceDescriptor.InterfaceProtocol =3D=3D USB_VENDOR_PROTOCOL))= || \ + ((InterfaceDescriptor.InterfaceClass =3D=3D USB_MISC_CLASS) && + (InterfaceDescriptor.InterfaceSubClass =3D=3D USB_RNDIS_SUBCLASS) && + (InterfaceDescriptor.InterfaceProtocol =3D=3D USB_RNDIS_ETHERNET_PR= OTOCOL)) ) { return TRUE; @@ -155,9 +155,9 @@ IsUsbCdcData ( } =20 // Check for CDC-DATA - if ((InterfaceDescriptor.InterfaceClass =3D=3D 0xA) && - (InterfaceDescriptor.InterfaceSubClass =3D=3D 0x0) && - (InterfaceDescriptor.InterfaceProtocol =3D=3D 0x0)) + if ((InterfaceDescriptor.InterfaceClass =3D=3D USB_CDC_DATA_CLASS) && + (InterfaceDescriptor.InterfaceSubClass =3D=3D USB_CDC_DATA_SUBCLASS)= && + (InterfaceDescriptor.InterfaceProtocol =3D=3D USB_NO_CLASS_PROTOCOL)) { return TRUE; } @@ -188,9 +188,9 @@ IsUsbRndis ( } =20 // Check for Rndis - if ((InterfaceDescriptor.InterfaceClass =3D=3D 0x2) && - (InterfaceDescriptor.InterfaceSubClass =3D=3D 0x2) && - (InterfaceDescriptor.InterfaceProtocol =3D=3D 0xFF)) + if ((InterfaceDescriptor.InterfaceClass =3D=3D USB_CDC_CLASS) && + (InterfaceDescriptor.InterfaceSubClass =3D=3D USB_CDC_ACM_SUBCLASS) = && + (InterfaceDescriptor.InterfaceProtocol =3D=3D USB_VENDOR_PROTOCOL)) { return TRUE; } diff --git a/MdeModulePkg/Include/Protocol/UsbEthernetProtocol.h b/MdeModul= ePkg/Include/Protocol/UsbEthernetProtocol.h index 4cc2cee1167d..f65674c91ba9 100644 --- a/MdeModulePkg/Include/Protocol/UsbEthernetProtocol.h +++ b/MdeModulePkg/Include/Protocol/UsbEthernetProtocol.h @@ -24,6 +24,10 @@ typedef struct _EDKII_USB_ETHERNET_PROTOCOL EDKII_USB_ET= HERNET_PROTOCOL; #define USB_NCM_NTB_PROTOCOL 0x01 #define USB_VENDOR_PROTOCOL 0xFF =20 +#define USB_MISC_CLASS 0xEF +#define USB_RNDIS_SUBCLASS 0x04 +#define USB_RNDIS_ETHERNET_PROTOCOL 0x01 + // Type Values for the DescriptorType Field #define CS_INTERFACE 0x24 #define CS_ENDPOINT 0x25 --=20 2.32.0 (Apple Git-132) -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108041): https://edk2.groups.io/g/devel/message/108041 Mute This Topic: https://groups.io/mt/100968488/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-