Hi Tom, One thing I want to highlight is that our design of network stack is not only for the PXE/HTTP boot trigged in BootManager, but also to make sure it's workable once there is any MNP instance configured by upper drivers (ARP/IPv4/IPv6).
Take ARP/IP as an example, once ARP/IP are started, we need a heartbeat to process any ARP requests, which is required by ARP functionality. In such a case, SNP must be started to make ARP/IP drivers works well. Thanks, Jiaxin > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > Tomas Pilar (tpilar) > Sent: Friday, January 25, 2019 1:43 AM > To: Laszlo Ersek <ler...@redhat.com>; edk2-devel@lists.01.org > Subject: Re: [edk2] Network Stack Budgeting > > > > On 24/01/2019 16:49, Laszlo Ersek wrote: > > On 01/24/19 14:25, Tomas Pilar (tpilar) wrote: > >> Hmm, > >> > >> Mnp->Configure() will eventually call MnpStartSnp(). > >> > >> A grep for Mnp->Configure shows that: > >> * ArpDxe performs this on DriverBinding.Start() > >> * Ip6Dxe performs this on DriverBinding.Start() > >> > >> Ipv4 and DnsDhcp do this as a part of their Configure() they expose in the > API. > > Yes, that makes sense. All of the above drivers are UEFI drivers that > > follow the UEFI driver model, AIUI. As long as the controller is not > > connected from BDS, no BindingStart() function should be called in these. > Ah, but I would expect the BDS to call ConnectController() on the NIC, but I > would not expect the network stack to be started unless the device is > actually chosen for PXE booting. In other words, the above protocols should > follow the example of EFI_DNS4_PROTOCOL that binds against the device > during BDS but .Configure() is not automatically called by > DriverBinding.Start(). > > .Configure() should be called by the BootManager if networking is actually to > be done. That in turn will configure Mnp and start Snp. > > Cheers, > Tom > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel