From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1YiJP0-0001j2-Nr for mharc-grub-devel@gnu.org; Wed, 15 Apr 2015 05:14:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40891) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YiJOv-0001YI-82 for grub-devel@gnu.org; Wed, 15 Apr 2015 05:14:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YiJOr-0003nf-8n for grub-devel@gnu.org; Wed, 15 Apr 2015 05:14:29 -0400 Received: from mail-vn0-x22e.google.com ([2607:f8b0:400c:c0f::22e]:43186) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YiJOr-0003nZ-5g for grub-devel@gnu.org; Wed, 15 Apr 2015 05:14:25 -0400 Received: by vnbg7 with SMTP id g7so12637543vnb.10 for ; Wed, 15 Apr 2015 02:14:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=PjZkhYHl26A2loeJ4RefqPvU32dwgDjr914xXXR0d4I=; b=GDjAbrDqxtAFW/Ho98ku456novHzDXYUwpRNDLirRVO0kHdxPYY5ZaejDhwftMt9/C 4fZIFgejv6kJXO5O4RfgFGJZYzruS4VMJ4CHnQx186jpYvD1Zqb6IKeAZYUhjwTQvXMD e/IssOplU88KxM4oLVhcmJ/aKBZxsri1lYV8WRsYq4slHKIiM84Ant8WmWlCPPtwoxp/ 45WQ3XYdVWUbiQOYCp2quJCxU0f0Zo4cdETlBptiCD4W7pPH1Xqp+FQweJMsreGPJTJU VgSOkq3RgQCVuariJwTpjE2sp90VqQnkVRyrjBj2KCy5HfaMdHcW6dRW7m9zaFkvYv2K 7+ZQ== X-Received: by 10.202.197.138 with SMTP id v132mr14405358oif.17.1429089264812; Wed, 15 Apr 2015 02:14:24 -0700 (PDT) Received: from localhost.localdomain ([130.57.30.250]) by mx.google.com with ESMTPSA id os15sm2022411oeb.8.2015.04.15.02.14.22 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 15 Apr 2015 02:14:24 -0700 (PDT) Sender: =?UTF-8?B?5by15paH6I+v?= From: Michael Chang To: grub-devel@gnu.org Subject: [PATCH 2/3] UEFI IPv6 PXE support Date: Wed, 15 Apr 2015 17:05:08 +0800 Message-Id: <1429088709-924-3-git-send-email-mchang@suse.com> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1429088709-924-1-git-send-email-mchang@suse.com> References: <1429088709-924-1-git-send-email-mchang@suse.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400c:c0f::22e X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Apr 2015 09:14:33 -0000 When system is booted from UEFI IPv6 PXE, the network interface can be configured directly by cached DHCPv6 packet in firmware without doing it all over again by contacting DHCP server. --- grub-core/net/drivers/efi/efinet.c | 24 +++++++++++++++++++----- 1 files changed, 19 insertions(+), 5 deletions(-) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c index f171f20..b1837e3 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c @@ -257,11 +257,25 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, if (! pxe) continue; pxe_mode = pxe->mode; - grub_net_configure_by_dhcp_ack (card->name, card, 0, - (struct grub_net_bootp_packet *) - &pxe_mode->dhcp_ack, - sizeof (pxe_mode->dhcp_ack), - 1, device, path); + + if (pxe_mode->using_ipv6) + { + grub_net_configure_by_dhcpv6_reply (card->name, card, 0, + (struct grub_net_dhcpv6_packet *) + &pxe_mode->dhcp_ack, + sizeof (pxe_mode->dhcp_ack), + 1, device, path); + if (grub_errno) + grub_print_error (); + } + else + { + grub_net_configure_by_dhcp_ack (card->name, card, 0, + (struct grub_net_bootp_packet *) + &pxe_mode->dhcp_ack, + sizeof (pxe_mode->dhcp_ack), + 1, device, path); + } return; } } -- 1.7.3.4