public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH edk2-platforms 1/1] Silicon/Broadcom/BcmGenetDxe: fix multicast handling
@ 2020-05-09 11:06 Ard Biesheuvel
  2020-05-09 19:34 ` Andrei Warkentin
  0 siblings, 1 reply; 4+ messages in thread
From: Ard Biesheuvel @ 2020-05-09 11:06 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Pete Batard, Jared McNeill, Andrei Warkentin,
	Samer El-Haj-Mahmoud

Move the handling of the promiscuous receive control to the SNP
ReceiveFilters() method where it belongs. Given that we do not
support multicast filtering, only minimal handling is required to
test the promiscuous bit and program the MAC accordingly. Any
multicast handling will be done by the MNP layer above it.

Cc: Pete Batard <pete@akeo.ie>
Cc: Jared McNeill <jmcneill@invisible.ca>
Cc: Andrei Warkentin <awarkentin@vmware.com>
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
---
 Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c |  7 +++----
 Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c | 17 ++++++-----------
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
index e3d015dd0820..a6102421cc26 100644
--- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
+++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
@@ -154,11 +154,10 @@ GenetDriverBindingStart (
   Genet->SnpMode.NvRamSize              = 0;
   Genet->SnpMode.NvRamAccessSize        = 0;
   Genet->SnpMode.ReceiveFilterMask      = EFI_SIMPLE_NETWORK_RECEIVE_UNICAST |
-                                          EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST |
                                           EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST |
-                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS |
-                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS_MULTICAST;
-  Genet->SnpMode.ReceiveFilterSetting   = Genet->SnpMode.ReceiveFilterMask;
+                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS;
+  Genet->SnpMode.ReceiveFilterSetting   = EFI_SIMPLE_NETWORK_RECEIVE_UNICAST |
+                                          EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST;
   Genet->SnpMode.MaxMCastFilterCount    = 0;
   Genet->SnpMode.MCastFilterCount       = 0;
   Genet->SnpMode.IfType                 = NET_IFTYPE_ETHERNET;
diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
index bf28448445d1..9ea153780538 100644
--- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
+++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
@@ -148,10 +148,6 @@ GenetSimpleNetworkInitialize (
   }
 
   GenetSetMacAddress (Genet, &Genet->SnpMode.CurrentAddress);
-  /*
-   * TODO: this belongs in GenetSimpleNetworkReceiveFilters, not here.
-   */
-  GenetSetPromisc (Genet, TRUE);
 
   GenetDmaInitRings (Genet);
 
@@ -306,6 +302,10 @@ GenetSimpleNetworkReceiveFilters (
   }
 
   Genet = GENET_PRIVATE_DATA_FROM_SNP_THIS (This);
+  if (((Enable | Disable) & ~Genet->SnpMode.ReceiveFilterMask) != 0 ||
+      (!ResetMCastFilter && MCastFilterCnt > Genet->SnpMode.MaxMCastFilterCount)) {
+    return EFI_INVALID_PARAMETER;
+  }
   if (Genet->SnpMode.State == EfiSimpleNetworkStopped) {
     return EFI_NOT_STARTED;
   }
@@ -313,13 +313,8 @@ GenetSimpleNetworkReceiveFilters (
     return EFI_DEVICE_ERROR;
   }
 
-  //
-  // Can't actually return EFI_UNSUPPORTED, so just ignore the filters
-  // (we set promiscuous mode ON inside GenetSimpleNetworkInitialize).
-  //
-  // TODO: move promisc handling here.
-  // TODO 2: support multicast/broadcast.
-  //
+  GenetSetPromisc (Genet,
+    (Enable & ~Disable & EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS) != 0);
 
   return EFI_SUCCESS;
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH edk2-platforms 1/1] Silicon/Broadcom/BcmGenetDxe: fix multicast handling
  2020-05-09 11:06 [PATCH edk2-platforms 1/1] Silicon/Broadcom/BcmGenetDxe: fix multicast handling Ard Biesheuvel
@ 2020-05-09 19:34 ` Andrei Warkentin
  2020-05-09 20:39   ` Ard Biesheuvel
  0 siblings, 1 reply; 4+ messages in thread
From: Andrei Warkentin @ 2020-05-09 19:34 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: devel@edk2.groups.io, Pete Batard, Jared McNeill,
	Samer El-Haj-Mahmoud

Hi Ard,

Could we upgrade broadcast to promisc? The spec allows using a “wider” filter.

Could we treat multicast the same way? So any non-unicast filter means promisc?

A

> 9 мая 2020 г., в 6:06 AM, Ard Biesheuvel <Ard.Biesheuvel@arm.com> написал(а):
> 
> Move the handling of the promiscuous receive control to the SNP
> ReceiveFilters() method where it belongs. Given that we do not
> support multicast filtering, only minimal handling is required to
> test the promiscuous bit and program the MAC accordingly. Any
> multicast handling will be done by the MNP layer above it.
> 
> Cc: Pete Batard <pete@akeo.ie>
> Cc: Jared McNeill <jmcneill@invisible.ca>
> Cc: Andrei Warkentin <awarkentin@vmware.com>
> Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
> ---
> Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c |  7 +++----
> Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c | 17 ++++++-----------
> 2 files changed, 9 insertions(+), 15 deletions(-)
> 
> diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
> index e3d015dd0820..a6102421cc26 100644
> --- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
> +++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
> @@ -154,11 +154,10 @@ GenetDriverBindingStart (
>   Genet->SnpMode.NvRamSize              = 0;
>   Genet->SnpMode.NvRamAccessSize        = 0;
>   Genet->SnpMode.ReceiveFilterMask      = EFI_SIMPLE_NETWORK_RECEIVE_UNICAST |
> -                                          EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST |
>                                           EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST |
> -                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS |
> -                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS_MULTICAST;
> -  Genet->SnpMode.ReceiveFilterSetting   = Genet->SnpMode.ReceiveFilterMask;
> +                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS;
> +  Genet->SnpMode.ReceiveFilterSetting   = EFI_SIMPLE_NETWORK_RECEIVE_UNICAST |
> +                                          EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST;
>   Genet->SnpMode.MaxMCastFilterCount    = 0;
>   Genet->SnpMode.MCastFilterCount       = 0;
>   Genet->SnpMode.IfType                 = NET_IFTYPE_ETHERNET;
> diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
> index bf28448445d1..9ea153780538 100644
> --- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
> +++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
> @@ -148,10 +148,6 @@ GenetSimpleNetworkInitialize (
>   }
> 
>   GenetSetMacAddress (Genet, &Genet->SnpMode.CurrentAddress);
> -  /*
> -   * TODO: this belongs in GenetSimpleNetworkReceiveFilters, not here.
> -   */
> -  GenetSetPromisc (Genet, TRUE);
> 
>   GenetDmaInitRings (Genet);
> 
> @@ -306,6 +302,10 @@ GenetSimpleNetworkReceiveFilters (
>   }
> 
>   Genet = GENET_PRIVATE_DATA_FROM_SNP_THIS (This);
> +  if (((Enable | Disable) & ~Genet->SnpMode.ReceiveFilterMask) != 0 ||
> +      (!ResetMCastFilter && MCastFilterCnt > Genet->SnpMode.MaxMCastFilterCount)) {
> +    return EFI_INVALID_PARAMETER;
> +  }
>   if (Genet->SnpMode.State == EfiSimpleNetworkStopped) {
>     return EFI_NOT_STARTED;
>   }
> @@ -313,13 +313,8 @@ GenetSimpleNetworkReceiveFilters (
>     return EFI_DEVICE_ERROR;
>   }
> 
> -  //
> -  // Can't actually return EFI_UNSUPPORTED, so just ignore the filters
> -  // (we set promiscuous mode ON inside GenetSimpleNetworkInitialize).
> -  //
> -  // TODO: move promisc handling here.
> -  // TODO 2: support multicast/broadcast.
> -  //
> +  GenetSetPromisc (Genet,
> +    (Enable & ~Disable & EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS) != 0);
> 
>   return EFI_SUCCESS;
> }
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH edk2-platforms 1/1] Silicon/Broadcom/BcmGenetDxe: fix multicast handling
  2020-05-09 19:34 ` Andrei Warkentin
@ 2020-05-09 20:39   ` Ard Biesheuvel
  2020-05-10  8:35     ` Andrei Warkentin
  0 siblings, 1 reply; 4+ messages in thread
From: Ard Biesheuvel @ 2020-05-09 20:39 UTC (permalink / raw)
  To: Andrei Warkentin
  Cc: devel@edk2.groups.io, Pete Batard, Jared McNeill,
	Samer El-Haj-Mahmoud

On 5/9/20 9:34 PM, Andrei Warkentin wrote:
> Hi Ard,
> 
> Could we upgrade broadcast to promisc? The spec allows using a “wider” filter.
> 

Eh, are you sure the hardware needs the promiscuous mode enabled to 
receive broadcast frames?

> Could we treat multicast the same way? So any non-unicast filter means promisc?
> 

The MNP layer already takes care of that.


>> 9 мая 2020 г., в 6:06 AM, Ard Biesheuvel <Ard.Biesheuvel@arm.com> написал(а):
>>
>> Move the handling of the promiscuous receive control to the SNP
>> ReceiveFilters() method where it belongs. Given that we do not
>> support multicast filtering, only minimal handling is required to
>> test the promiscuous bit and program the MAC accordingly. Any
>> multicast handling will be done by the MNP layer above it.
>>
>> Cc: Pete Batard <pete@akeo.ie>
>> Cc: Jared McNeill <jmcneill@invisible.ca>
>> Cc: Andrei Warkentin <awarkentin@vmware.com>
>> Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
>> ---
>> Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c |  7 +++----
>> Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c | 17 ++++++-----------
>> 2 files changed, 9 insertions(+), 15 deletions(-)
>>
>> diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
>> index e3d015dd0820..a6102421cc26 100644
>> --- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
>> +++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
>> @@ -154,11 +154,10 @@ GenetDriverBindingStart (
>>    Genet->SnpMode.NvRamSize              = 0;
>>    Genet->SnpMode.NvRamAccessSize        = 0;
>>    Genet->SnpMode.ReceiveFilterMask      = EFI_SIMPLE_NETWORK_RECEIVE_UNICAST |
>> -                                          EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST |
>>                                            EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST |
>> -                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS |
>> -                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS_MULTICAST;
>> -  Genet->SnpMode.ReceiveFilterSetting   = Genet->SnpMode.ReceiveFilterMask;
>> +                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS;
>> +  Genet->SnpMode.ReceiveFilterSetting   = EFI_SIMPLE_NETWORK_RECEIVE_UNICAST |
>> +                                          EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST;
>>    Genet->SnpMode.MaxMCastFilterCount    = 0;
>>    Genet->SnpMode.MCastFilterCount       = 0;
>>    Genet->SnpMode.IfType                 = NET_IFTYPE_ETHERNET;
>> diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
>> index bf28448445d1..9ea153780538 100644
>> --- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
>> +++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
>> @@ -148,10 +148,6 @@ GenetSimpleNetworkInitialize (
>>    }
>>
>>    GenetSetMacAddress (Genet, &Genet->SnpMode.CurrentAddress);
>> -  /*
>> -   * TODO: this belongs in GenetSimpleNetworkReceiveFilters, not here.
>> -   */
>> -  GenetSetPromisc (Genet, TRUE);
>>
>>    GenetDmaInitRings (Genet);
>>
>> @@ -306,6 +302,10 @@ GenetSimpleNetworkReceiveFilters (
>>    }
>>
>>    Genet = GENET_PRIVATE_DATA_FROM_SNP_THIS (This);
>> +  if (((Enable | Disable) & ~Genet->SnpMode.ReceiveFilterMask) != 0 ||
>> +      (!ResetMCastFilter && MCastFilterCnt > Genet->SnpMode.MaxMCastFilterCount)) {
>> +    return EFI_INVALID_PARAMETER;
>> +  }
>>    if (Genet->SnpMode.State == EfiSimpleNetworkStopped) {
>>      return EFI_NOT_STARTED;
>>    }
>> @@ -313,13 +313,8 @@ GenetSimpleNetworkReceiveFilters (
>>      return EFI_DEVICE_ERROR;
>>    }
>>
>> -  //
>> -  // Can't actually return EFI_UNSUPPORTED, so just ignore the filters
>> -  // (we set promiscuous mode ON inside GenetSimpleNetworkInitialize).
>> -  //
>> -  // TODO: move promisc handling here.
>> -  // TODO 2: support multicast/broadcast.
>> -  //
>> +  GenetSetPromisc (Genet,
>> +    (Enable & ~Disable & EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS) != 0);
>>
>>    return EFI_SUCCESS;
>> }
>> -- 
>> 2.17.1
>>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH edk2-platforms 1/1] Silicon/Broadcom/BcmGenetDxe: fix multicast handling
  2020-05-09 20:39   ` Ard Biesheuvel
@ 2020-05-10  8:35     ` Andrei Warkentin
  0 siblings, 0 replies; 4+ messages in thread
From: Andrei Warkentin @ 2020-05-10  8:35 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: devel@edk2.groups.io, Pete Batard, Jared McNeill,
	Samer El-Haj-Mahmoud

[-- Attachment #1: Type: text/plain, Size: 5355 bytes --]

I think so - https://github.com/openbsd/src/blob/master/sys/dev/ic/bcmgenet.c#L427 (BSD licensed code, actually the UEFI driver's direct relative). Here you see if promisc is off, broadcast address is programmed into the filter as well.

And closer to UEFI reality, here's the Ax88772 driver from edk2-platform: https://github.com/tianocore/edk2-platforms/blob/94b23488bbda4361b6753adf6025c8a1dfabe27b/Drivers/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772/Ax88772.c#L1081

In short, since we don't want to bother with filters now, let's enable promisc any time we're being asked for broadcast?

A

________________________________
From: Ard Biesheuvel <ard.biesheuvel@arm.com>
Sent: Saturday, May 9, 2020 3:39 PM
To: Andrei Warkentin <awarkentin@vmware.com>
Cc: devel@edk2.groups.io <devel@edk2.groups.io>; Pete Batard <pete@akeo.ie>; Jared McNeill <jmcneill@invisible.ca>; Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Subject: Re: [PATCH edk2-platforms 1/1] Silicon/Broadcom/BcmGenetDxe: fix multicast handling

On 5/9/20 9:34 PM, Andrei Warkentin wrote:
> Hi Ard,
>
> Could we upgrade broadcast to promisc? The spec allows using a “wider” filter.
>

Eh, are you sure the hardware needs the promiscuous mode enabled to
receive broadcast frames?

> Could we treat multicast the same way? So any non-unicast filter means promisc?
>

The MNP layer already takes care of that.


>> 9 мая 2020 г., в 6:06 AM, Ard Biesheuvel <Ard.Biesheuvel@arm.com> написал(а):
>>
>> Move the handling of the promiscuous receive control to the SNP
>> ReceiveFilters() method where it belongs. Given that we do not
>> support multicast filtering, only minimal handling is required to
>> test the promiscuous bit and program the MAC accordingly. Any
>> multicast handling will be done by the MNP layer above it.
>>
>> Cc: Pete Batard <pete@akeo.ie>
>> Cc: Jared McNeill <jmcneill@invisible.ca>
>> Cc: Andrei Warkentin <awarkentin@vmware.com>
>> Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
>> ---
>> Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c |  7 +++----
>> Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c | 17 ++++++-----------
>> 2 files changed, 9 insertions(+), 15 deletions(-)
>>
>> diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
>> index e3d015dd0820..a6102421cc26 100644
>> --- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
>> +++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/DriverBinding.c
>> @@ -154,11 +154,10 @@ GenetDriverBindingStart (
>>    Genet->SnpMode.NvRamSize              = 0;
>>    Genet->SnpMode.NvRamAccessSize        = 0;
>>    Genet->SnpMode.ReceiveFilterMask      = EFI_SIMPLE_NETWORK_RECEIVE_UNICAST |
>> -                                          EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST |
>>                                            EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST |
>> -                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS |
>> -                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS_MULTICAST;
>> -  Genet->SnpMode.ReceiveFilterSetting   = Genet->SnpMode.ReceiveFilterMask;
>> +                                          EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS;
>> +  Genet->SnpMode.ReceiveFilterSetting   = EFI_SIMPLE_NETWORK_RECEIVE_UNICAST |
>> +                                          EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST;
>>    Genet->SnpMode.MaxMCastFilterCount    = 0;
>>    Genet->SnpMode.MCastFilterCount       = 0;
>>    Genet->SnpMode.IfType                 = NET_IFTYPE_ETHERNET;
>> diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
>> index bf28448445d1..9ea153780538 100644
>> --- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
>> +++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/SimpleNetwork.c
>> @@ -148,10 +148,6 @@ GenetSimpleNetworkInitialize (
>>    }
>>
>>    GenetSetMacAddress (Genet, &Genet->SnpMode.CurrentAddress);
>> -  /*
>> -   * TODO: this belongs in GenetSimpleNetworkReceiveFilters, not here.
>> -   */
>> -  GenetSetPromisc (Genet, TRUE);
>>
>>    GenetDmaInitRings (Genet);
>>
>> @@ -306,6 +302,10 @@ GenetSimpleNetworkReceiveFilters (
>>    }
>>
>>    Genet = GENET_PRIVATE_DATA_FROM_SNP_THIS (This);
>> +  if (((Enable | Disable) & ~Genet->SnpMode.ReceiveFilterMask) != 0 ||
>> +      (!ResetMCastFilter && MCastFilterCnt > Genet->SnpMode.MaxMCastFilterCount)) {
>> +    return EFI_INVALID_PARAMETER;
>> +  }
>>    if (Genet->SnpMode.State == EfiSimpleNetworkStopped) {
>>      return EFI_NOT_STARTED;
>>    }
>> @@ -313,13 +313,8 @@ GenetSimpleNetworkReceiveFilters (
>>      return EFI_DEVICE_ERROR;
>>    }
>>
>> -  //
>> -  // Can't actually return EFI_UNSUPPORTED, so just ignore the filters
>> -  // (we set promiscuous mode ON inside GenetSimpleNetworkInitialize).
>> -  //
>> -  // TODO: move promisc handling here.
>> -  // TODO 2: support multicast/broadcast.
>> -  //
>> +  GenetSetPromisc (Genet,
>> +    (Enable & ~Disable & EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS) != 0);
>>
>>    return EFI_SUCCESS;
>> }
>> --
>> 2.17.1
>>


[-- Attachment #2: Type: text/html, Size: 10060 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-05-10  8:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-09 11:06 [PATCH edk2-platforms 1/1] Silicon/Broadcom/BcmGenetDxe: fix multicast handling Ard Biesheuvel
2020-05-09 19:34 ` Andrei Warkentin
2020-05-09 20:39   ` Ard Biesheuvel
2020-05-10  8:35     ` Andrei Warkentin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox