MdeModulePkg: Do not use hard coded TTL/ToS in PXE driver.

EFI_PXE_BASE_CODE_PROTOCOL has interface to set the TTL and ToS value, but
not used by the UdpWrite() interface. The code always use a hard coded 16
for the TTL and 0 for ToS.
This patch update the UpdWrite() to use the TTL and ToS which have been set
by the SetParameters().

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-By: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-By: Samer El-Haj-Mahmoud <elhaj@hpe.com>
This commit is contained in:
Fu Siyuan 2016-04-29 15:09:20 +08:00
parent 6f2f4116eb
commit 60de3c19a7
3 changed files with 21 additions and 11 deletions

View File

@ -1,7 +1,7 @@
/** @file
Interface routines for PxeBc.
Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -1435,7 +1435,9 @@ EfiPxeBcUdpWrite (
&Private->StationIp.v4,
&Private->SubnetMask.v4,
&Private->GatewayIp.v4,
&Private->CurrentUdpSrcPort
&Private->CurrentUdpSrcPort,
Private->Mode.TTL,
Private->Mode.ToS
);
if (EFI_ERROR (Status)) {
Private->CurrentUdpSrcPort = 0;

View File

@ -1,7 +1,7 @@
/** @file
Support routines for PxeBc.
Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -42,6 +42,8 @@ PxeBcCommonNotify (
@param SubnetMask Pointer to the subnetmask of the station ip address.
@param Gateway Pointer to the gateway ip address.
@param SrcPort Pointer to the srouce port of the station.
@param TTL The time to live field of the IP header.
@param ToS The type of service field of the IP header.
@retval EFI_SUCCESS The configuration settings were set, changed, or reset successfully.
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
@ -65,7 +67,9 @@ PxeBcConfigureUdpWriteInstance (
IN EFI_IPv4_ADDRESS *StationIp,
IN EFI_IPv4_ADDRESS *SubnetMask,
IN EFI_IPv4_ADDRESS *Gateway,
IN OUT UINT16 *SrcPort
IN OUT UINT16 *SrcPort,
IN UINT8 TTL,
IN UINT8 ToS
)
{
EFI_UDP4_CONFIG_DATA Udp4CfgData;
@ -74,8 +78,8 @@ PxeBcConfigureUdpWriteInstance (
ZeroMem (&Udp4CfgData, sizeof (Udp4CfgData));
Udp4CfgData.ReceiveTimeout = PXEBC_DEFAULT_LIFETIME;
Udp4CfgData.TypeOfService = DEFAULT_ToS;
Udp4CfgData.TimeToLive = DEFAULT_TTL;
Udp4CfgData.TypeOfService = ToS;
Udp4CfgData.TimeToLive = TTL;
Udp4CfgData.AllowDuplicatePort = TRUE;
CopyMem (&Udp4CfgData.StationAddress, StationIp, sizeof (*StationIp));

View File

@ -1,6 +1,6 @@
/** @file
Support routines for PxeBc.
Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -38,6 +38,8 @@ PxeBcCommonNotify (
@param SubnetMask Pointer to the subnetmask of the station ip address.
@param Gateway Pointer to the gateway ip address.
@param SrcPort Pointer to the srouce port of the station.
@param TTL The time to live field of the IP header.
@param ToS The type of service field of the IP header.
@retval EFI_SUCCESS The configuration settings were set, changed, or reset successfully.
@retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
@ -61,7 +63,9 @@ PxeBcConfigureUdpWriteInstance (
IN EFI_IPv4_ADDRESS *StationIp,
IN EFI_IPv4_ADDRESS *SubnetMask,
IN EFI_IPv4_ADDRESS *Gateway,
IN OUT UINT16 *SrcPort
IN OUT UINT16 *SrcPort,
IN UINT8 TTL,
IN UINT8 ToS
);
/**
Convert number to ASCII value.