grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCHv2] EFI - PXE - include details from proxy (altserviceboot) of


From: Andrey Borzenkov
Subject: Re: [PATCHv2] EFI - PXE - include details from proxy (altserviceboot) offer when available (resend)
Date: Wed, 12 Feb 2014 19:58:36 +0400

В Tue, 11 Feb 2014 02:20:19 +0000
"Mroczek, Joseph T" <address@hidden> пишет:

> Updated efi api.h with more of pxe mode structure. Definitions from uEFI 
> specification v2.4 errata A.
> 
> I had to update the typedef for grub_efi_ip_address_t, but it did not seem to 
> be used anywhere at this point.
> 
> There is a minor issue that it is still not capturing the file name. It is 
> beyond my skill level to track down exactly why and fix it safely.
> 
> Please let me know if there is anything more I can do.
> 
> ~joe
> 
> diff -Naur grub-2.02~beta2/grub-core/net/drivers/efi/efinet.c 
> grub-2.02~beta2-bug41488-jtm/grub-core/net/drivers/efi/efinet.c
> --- grub-2.02~beta2/grub-core/net/drivers/efi/efinet.c 2013-12-24 
> 11:29:27.000000000 -0500
> +++ grub-2.02~beta2-bug41488-jtm/grub-core/net/drivers/efi/efinet.c           
>      2014-02-10 20:21:29.342895600 -0500
> @@ -250,6 +250,12 @@
>                                                                    
> &pxe_mode->dhcp_ack,
>                                                                    sizeof 
> (pxe_mode->dhcp_ack),
>                                                                    1, device, 
> path);
> +    if (pxe_mode->proxy_offer_received)
> +      grub_net_configure_by_dhcp_ack (card->name, card, 0,
> +                                                                 (struct 
> grub_net_bootp_packet *)
> +                                                                 
> &pxe_mode->proxy_offer,
> +                                                                 sizeof 
> (pxe_mode->proxy_offer),
> +                                                                 1, device, 
> path);

I think these two must be reverted. According to pxe spec, data
provided by DHCP server takes precedent over data provided by DHCP
Proxy and this patch does the opposite. This should hopefully give
client valid address again.

>      return;
>    }
> }
> diff -Naur grub-2.02~beta2/include/grub/efi/api.h 
> grub-2.02~beta2-bug41488-jtm/include/grub/efi/api.h
> --- grub-2.02~beta2/include/grub/efi/api.h         2013-12-24 
> 12:04:54.000000000 -0500
> +++ grub-2.02~beta2-bug41488-jtm/include/grub/efi/api.h        2014-02-10 
> 20:30:32.754895600 -0500
> @@ -526,7 +526,7 @@
> typedef grub_uint8_t grub_efi_mac_address_t[32];
> typedef grub_uint8_t grub_efi_ipv4_address_t[4];
> typedef grub_uint16_t grub_efi_ipv6_address_t[8];
> -typedef grub_uint8_t grub_efi_ip_address_t[8] __attribute__ ((aligned(4)));
> +typedef grub_uint8_t grub_efi_ip_address_t[16] __attribute__ ((aligned(4)));
> typedef grub_efi_uint64_t grub_efi_physical_address_t;
> typedef grub_efi_uint64_t grub_efi_virtual_address_t;
> 
> @@ -1342,12 +1342,33 @@
> 
>  typedef struct grub_efi_pxe_mode
> {
> -  grub_uint8_t unused[52];
> +  grub_uint8_t started;
> +  grub_uint8_t ipv6_available;
> +  grub_uint8_t ipv6_supported;
> +  grub_uint8_t using_ipv6;
> +  grub_uint8_t bis_supported;
> +  grub_uint8_t bis_detected;
> +  grub_uint8_t auto_arp;
> +  grub_uint8_t send_guid;
> +  grub_uint8_t dhcp_discover_valid;
> +  grub_uint8_t dhcp_ack_received;
> +  grub_uint8_t proxy_offer_received;
> +  grub_uint8_t pxe_discover_valid;
> +  grub_uint8_t pxe_reply_received;
> +  grub_uint8_t pxe_bis_reply_received;
> +  grub_uint8_t icmp_error_received;
> +  grub_uint8_t tftp_error_received;
> +  grub_uint8_t make_callbacks;
> +  grub_uint8_t ttl;
> +  grub_uint8_t tos;
> +  grub_efi_ip_address_t station_ip;
> +  grub_efi_ip_address_t subnet_mask;
>    grub_efi_pxe_packet_t dhcp_discover;
>    grub_efi_pxe_packet_t dhcp_ack;
>    grub_efi_pxe_packet_t proxy_offer;
>    grub_efi_pxe_packet_t pxe_discover;
>    grub_efi_pxe_packet_t pxe_reply;
> +  grub_efi_pxe_packet_t pxe_bis_reply;
> } grub_efi_pxe_mode_t;
> 
>  typedef struct grub_efi_pxe
> 
> 
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]