grub-devel
[Top][All Lists]
Advanced

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

[PATCHv2] EFI - PXE - include details from proxy (altserviceboot) offer


From: Mroczek, Joseph T
Subject: [PATCHv2] EFI - PXE - include details from proxy (altserviceboot) offer when available
Date: Tue, 11 Feb 2014 01:49:43 +0000

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);

     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

 


reply via email to

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