Correct a typo If a PCD should NOT be used from the UEFI compliance point of view,
From: Fu, Siyuan Sent: Friday, February 19, 2016 9:40 AM To: Kinney, Michael D <[email protected]> Cc: Subramanian, Sriram (EG Servers Platform SW) <[email protected]>; El-Haj-Mahmoud, Samer <[email protected]>; Wu, Jiaxin <[email protected]>; Hegde, Nagaraj P <[email protected]>; Zimmer, Vincent <[email protected]>; Li, Ruth <[email protected]>; Ye, Ting <[email protected]>; [email protected] Subject: RE: Using PCD to set default policy for IPv4/IPv6 Hi, Mike Seems HP have some special use case that couldn't apply the fast boot, so let's just put it aside and let me describe more clearly why the problem couldn't be solved by a platform driver/PCD or a platform HII configuration. First, the "default policy" here we are talking about, means the policy for a newly detected NIC by the IP driver. When IP driver recognized a NIC which hasn't been managed by itself before, it will set the "default policy" to this NIC, and save it in NV variable. Once the policy is changed by anyone using the IP4/6 Config protocol, the NV setting will be overridden by the new setting, and keep effect over platform reset. Second, when IP/DHCP driver is started, it will send out the DHCP Discover(for IPv4)/Solicit(v6) message immediately if the policy for this NIC is "DHCP(v4)/Auto(v6)". The IP driver binding start flow chart is shown in the attached picture. We can see that if a platform driver is used to override the policy setting, it could only be started after the IP driver, because it need to consume the IP Config protocol, which is produced in the IP driver binding start function. But that time point is too late to override the policy to 'static'-the first DHCP message has already been sent out, which is the problem we want to solved. And there are 2 points I want to highlight: 1. The "default policy" only impact a new detected NIC device, any new configured policy will be saved and override the old one. So if a platform driver is used to set the policy to "static", it will only fail to prevent the DHCP message send out in the first boot. In all subsequent boot/reset flow, the policy is already "static" so the problem doesn't exist. 2. The "default policy" only impact the IP4/6 driver, any 3rd driver/application shouldn't depend on the default policy setting. In fact, any 3rd driver/application can't depend on the default policy setting to implement their functionality. The reason is also simple: the default policy only take effect on the first boot or on the new plug-in device, and may be override by any other code once the IP Config protocol is produced, as a result if any modules other than the IP4/6 driver have the assumption that the policy is always the "default policy", it will definitely fall into error. The only correct way is first to Get the current policy setting, and Set it if needed. Above is the detail reason why we need a method, like a PCD we proposed, to set the "default policy". A platform driver could use IP Config protocol to set the policy, but it has no method to prevent the DHCP message on a new detected device, that's the problem we want to solve. If a PCD should NOT be used from the UEFI compliance point of view, we need to consider other method to give a chance to the platform driver to override the setting and prevent the DHCP message even on the first boot, if the product really need it. Best Regards Siyuan > -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Subramanian, Sriram (EG Servers Platform SW) > Sent: Thursday, February 18, 2016 3:32 PM > To: Kinney, Michael D > <[email protected]<mailto:[email protected]>>; > El-Haj-Mahmoud, > Samer <[email protected]<mailto:[email protected]>>; > Wu, Jiaxin > <[email protected]<mailto:[email protected]>>; Hegde, Nagaraj P > <[email protected]<mailto:[email protected]>>; > Zimmer, Vincent <[email protected]<mailto:[email protected]>>; > Li, Ruth <[email protected]<mailto:[email protected]>>; > Ye, Ting <[email protected]<mailto:[email protected]>>; Fu, Siyuan > <[email protected]<mailto:[email protected]>>; edk2- > [email protected]<mailto:[email protected]> > Subject: Re: [edk2] Using PCD to set default policy for IPv4/IPv6 > > The IP4_CONFIG2 and IP6_CONFIG protocols need to know the current policy > to decide if they need to do something during their DBStart (such as > initiating > a DHCPv4/v6 if policy is set so). It is not necessary for the platform to > have a > per-NIC interface policy, or the platform may choose to set policies only on > specific NICs. For others, and in general the protocol needs to have a policy > to apply, for which NetworkPkg could have PCDs that are consumed by these > protocols. With this approach, platform code can set the PCD to what policy > the platform wants for _all_ its NICs, and it can selectively change it by > calling > the set policy API. > > Thanks, > Sriram. > > -----Original Message----- > From: Kinney, Michael D [mailto:[email protected]] > Sent: Thursday, February 18, 2016 5:48 AM > To: El-Haj-Mahmoud, Samer; Wu, Jiaxin; Subramanian, Sriram (EG Servers > Platform SW); Hegde, Nagaraj P; Zimmer, Vincent; Li, Ruth; Ye, Ting; Fu, > Siyuan; [email protected]<mailto:[email protected]>; Kinney, > Michael D > Subject: RE: Using PCD to set default policy for IPv4/IPv6 > > Samer, > > A platform driver can be implemented to set the policy without defining PCDs > in the MdeModulePkg or NetworkPkg. > > Instead, a platform package can choose to define PCDs and potentially use > those PCD values to set policy in calls to the > EFI_IP4_CONFIG2_POLICY or EFI_IP6_CONFIG_POLICY. Or it could be an > algorithm or HII forms in platform driver to set policy. > > Mike > > > -----Original Message----- > > From: edk2-devel [mailto:[email protected]] On Behalf Of > El-Haj-Mahmoud, > > Samer > > Sent: Wednesday, February 17, 2016 3:20 PM > > To: Kinney, Michael D > > <[email protected]<mailto:[email protected]>>; Wu, Jiaxin > <[email protected]<mailto:[email protected]>>; > > Subramanian, Sriram (EG Servers Platform SW) > > <[email protected]<mailto:[email protected]>>; > Hegde, Nagaraj P > > <[email protected]<mailto:[email protected]>>; Zimmer, Vincent > <[email protected]<mailto:[email protected]>>; Li, Ruth > > <[email protected]<mailto:[email protected]>>; Ye, Ting > > <[email protected]<mailto:[email protected]>>; Fu, Siyuan > <[email protected]<mailto:[email protected]>>; > > [email protected]<mailto:[email protected]> > > Subject: Re: [edk2] Using PCD to set default policy for IPv4/IPv6 > > > > 1) Yes you could... that is one implementation choice. There are cases > where you need > > to start multiple adapters, just for inventory/other management tasks, and > you do not > > want all of them to default to DHCP/automatic > > > > 2) Yes a platform driver can set the policy through the PCDs. I thought this > was the > > intention of introducing the PCDs. Previously, the policy was hard-coded to > DHCP/auto > > in the EDK2 drivers. > > > > > > > > -----Original Message----- > > From: Kinney, Michael D [mailto:[email protected]] > > Sent: Wednesday, February 17, 2016 3:00 PM > > To: El-Haj-Mahmoud, Samer > > <[email protected]<mailto:[email protected]>>; Wu, > Jiaxin > > <[email protected]<mailto:[email protected]>>; Subramanian, Sriram (EG > > Servers Platform SW) > <[email protected]<mailto:[email protected]>>; > > Hegde, Nagaraj P <[email protected]<mailto:[email protected]>>; > > Zimmer, Vincent > <[email protected]<mailto:[email protected]>>; > > Li, Ruth <[email protected]<mailto:[email protected]>>; Ye, Ting > > <[email protected]<mailto:[email protected]>>; Fu, Siyuan > > <[email protected]<mailto:[email protected]>>; > > [email protected]<mailto:[email protected]>; Kinney, Michael D > > <[email protected]<mailto:[email protected]>> > > Subject: RE: Using PCD to set default policy for IPv4/IPv6 > > > > Hi Samer, > > > > 1) If there are a large number of adapters, can you choose to only start the > ones > > needed to boot? > > > > 2) Can't a platform driver set the policy needed for each NIC that is > required to boot? > > > > Mike > > > > > > > > > -----Original Message----- > > > From: edk2-devel [mailto:[email protected]] On Behalf Of > > > El-Haj-Mahmoud, Samer > > > Sent: Wednesday, February 17, 2016 12:53 PM > > > To: Kinney, Michael D > > > <[email protected]<mailto:[email protected]>>; Wu, > > > Jiaxin > > > <[email protected]<mailto:[email protected]>>; Subramanian, Sriram > > > (EG Servers Platform SW) > > > <[email protected]<mailto:[email protected]>>; Hegde, Nagaraj P > > > <[email protected]<mailto:[email protected]>>; > > > Zimmer, Vincent > > > <[email protected]<mailto:[email protected]>>; Li, Ruth > > > <[email protected]<mailto:[email protected]>>; Ye, Ting > > > <[email protected]<mailto:[email protected]>>; Fu, Siyuan > > > <[email protected]<mailto:[email protected]>>; > > > [email protected]<mailto:[email protected]> > > > Subject: Re: [edk2] Using PCD to set default policy for IPv4/IPv6 > > > > > > I believe the PCDs are just to let the core drivers select the default > > > behavior (not full configuration) of automatic/DHCP vs. Static. Today, > > > the core drivers hard-code the default behavior to DHCP/automatic, and > > > that is not ideal in server platforms that may have a large number of > adapters. > > > > > > > > > > > > From: Kinney, Michael D [mailto:[email protected]] > > > Sent: Wednesday, February 17, 2016 11:34 AM > > > To: Wu, Jiaxin <[email protected]<mailto:[email protected]>>; > > > Subramanian, Sriram (EG Servers > > > Platform SW) <[email protected]<mailto:[email protected]>>; El-Haj-Mahmoud, > > > Samer > > > <[email protected]<mailto:[email protected]>>; > > > Hegde, Nagaraj P > > > <[email protected]<mailto:[email protected]>>; Zimmer, Vincent > <[email protected]<mailto:[email protected]>>; > > > Li, Ruth <[email protected]<mailto:[email protected]>>; Ye, Ting > > > <[email protected]<mailto:[email protected]>>; Fu, Siyuan > > > <[email protected]<mailto:[email protected]>>; > > > [email protected]<mailto:[email protected]>; Kinney, Michael D > > > <[email protected]<mailto:[email protected]>> > > > Subject: RE: Using PCD to set default policy for IPv4/IPv6 > > > > > > Jiaxin, > > > > > > If a platform module can set the policy for each network interface, > > > then why do we need to add PCDs? > > > > > > Thanks, > > > > > > Mike > > > > > > From: Wu, Jiaxin > > > Sent: Tuesday, February 16, 2016 6:30 PM > > > To: Kinney, Michael D > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Subramanian, Sriram (EG Servers Platform SW) > > > <[email protected]<mailto:sriram- > > > [email protected]<mailto:[email protected]%3cmailto:sriram-%[email protected]>>>; > > > El-Haj-Mahmoud, > Samer > > > <[email protected]<mailto:samer.el-haj- > > > [email protected]<mailto:[email protected]>>>; Hegde, Nagaraj P > > > <[email protected]<mailto:nagaraj- > > > [email protected]<mailto:[email protected]>>>; Zimmer, Vincent > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Li, > Ruth > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Ye, Ting > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Fu, Siyuan > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > [email protected]<mailto:edk2-<mailto:[email protected]%3cmailto:edk2-> > > > [email protected]<mailto:[email protected]>> > > > Subject: RE: Using PCD to set default policy for IPv4/IPv6 > > > > > > Mike, > > > Thanks your comments. > > > First, I agree other platform modules can also change the police by > > > using the set operation. > > > Second for the complete design, the proposed for the new PCDs will > > > only be consumed by Ip4Dxe/Ip6Dxe modules. The PCDs are used by > these > > > two modules to determine the default policy, the current Ip4Dxe/Ip6Dxe > > > driver will make decision which more configuration information needed > > > to be also configured. So, I think this a complete design to cover the > IPv4/Ipv6 > > configuration protocol. > > > > > > Thanks. > > > Jiaxin > > > > > > From: Kinney, Michael D > > > Sent: Wednesday, February 17, 2016 6:10 AM > > > To: Wu, Jiaxin > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Subramanian, Sriram (EG Servers Platform SW) > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > El-Haj-Mahmoud, > Samer > > > <[email protected]<mailto:samer.el-haj-<mailto:[email protected]%3cmailto:[email protected]> > [email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Hegde, Nagaraj P > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > Zimmer, > > > Vincent > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Li, Ruth > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Ye, Ting > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Fu, Siyuan > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > [email protected]<mailto:edk2-<mailto:[email protected]%3cmailto:edk2-> > > > [email protected]<mailto:[email protected]>>; Kinney, Michael D > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>> > > > Subject: RE: Using PCD to set default policy for IPv4/IPv6 > > > > > > Jiaxin, > > > > > > This proposal looks incomplete to me. If the configuration policy is > > > set to Ip4Config2PolicyStatic or Ip6ConfigPolicyManual, then it seems > > > like a lot more configuration information would be required for the static > or manual > > policies. > > > > > > Can you also provide details on the complete design. What modules are > > > you proposing would use these new PCDs? These configuration protocols > provide > > get/set operations. > > > Why can't a platform module use the set operation to set static/manual > > > policy along with the additional set operations to completely configure > static/manual > > policy? > > > > > > Thanks, > > > > > > Mike > > > > > > From: Wu, Jiaxin > > > Sent: Monday, February 15, 2016 7:37 PM > > > To: Subramanian, Sriram (EG Servers Platform SW) > > > <[email protected]<mailto:sriram- > > > [email protected]<mailto:[email protected]%3cmailto:sriram-%[email protected]>>>; > > > El-Haj-Mahmoud, > Samer > > > <[email protected]<mailto:samer.el-haj- > > > [email protected]<mailto:[email protected]>>>; Hegde, Nagaraj P > > > <[email protected]<mailto:nagaraj- > > > [email protected]<mailto:[email protected]>>>; Zimmer, Vincent > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Kinney, > > > Michael D > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Li, > > > Ruth > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Ye, Ting > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > Fu, Siyuan > > > <[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>>; > > > [email protected]<mailto:edk2-<mailto:[email protected]%3cmailto:edk2-> > > > [email protected]<mailto:[email protected]>> > > > Subject: Using PCD to set default policy for IPv4/IPv6 > > > > > > Hi all, > > > > > > Below is the descriptions about the default policy for IPv4/IPv6 in > > > latest UEFI Spec (Version 2.6). > > > > > > << P1472: The EFI_IP4_CONFIG2_POLICY defines the general configuration > > > policy the EFI > > > IPv4 Configuration II Protocol supports. The default policy for a > > > newly detected communication device is beyond the scope of this > > > document. An implementation might leave it to platform to choose the > > > default policy.>> > > > > > > << P1510: The EFI_IP6_CONFIG_POLICY defines the general configuration > > > policy the EFI > > > IPv6 Configuration Protocol supports. The default policy for a newly > > > detected communication device is beyond the scope of this document. An > > > implementation might leave it to platform to choose the default > > > policy.>> > > > > > > So, I propose to introduce PCD to leave it to platform to choose the > default policy. > > > That's meaningful to make the source code consistent with UEFI Spec. > > > Detailed see > > > below: > > > > > > ## Ip4Config2 Policy Type configuration. > > > # 01 = The configuration policy is Ip4Config2PolicyStatic # 02 = The > > > configuration policy is Ip4Config2PolicyDhcp # @Prompt Type Value of > > > Ip4Config2 Policy. > > > > gEfiMdeModulePkgTokenSpaceGuid.PcdIp4Config2PolicyType|2|UINT8|0x10 > 000 > > > 002 > > > > > > ## Ip6Config Policy Type configuration. > > > # 01 = The configuration policy is Ip6ConfigPolicyManual # 02 = The > > > configuration policy is Ip6ConfigPolicyAutomatic # @Prompt Type Value > > > of Ip6Config Policy. > > > > gEfiNetworkPkgTokenSpaceGuid.PcdIp6ConfigPolicyType|2|UINT8|0x100000 > 02 > > > > > > Do you have any opinion? If there is no objection, I will create the > > > corresponding patches to fix it. > > > > > > Thanks. > > > Jiaxin > > > _______________________________________________ > > > edk2-devel mailing list > > > [email protected]<mailto:[email protected]> > > > https://lists.01.org/mailman/listinfo/edk2-devel > > _______________________________________________ > > edk2-devel mailing list > > [email protected]<mailto:[email protected]> > > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > [email protected]<mailto:[email protected]> > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

