grub2/grub-core
Michael Chang 73190d98b0 efinet: Setting DNS server from UEFI protocol
In the URI device path node, any name rahter than address can be used for
looking up the resources so that DNS service become needed to get answer of the
name's address. Unfortunately the DNS is not defined in any of the device path
nodes so that we use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL
to obtain it.

These two protcols are defined the sections of UEFI specification.

 27.5 EFI IPv4 Configuration II Protocol
 27.7 EFI IPv6 Configuration Protocol

include/grub/efi/api.h:
Add new structure and protocol UUID of EFI_IP4_CONFIG2_PROTOCOL and
EFI_IP6_CONFIG_PROTOCOL.

grub-core/net/drivers/efi/efinet.c:
Use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL to obtain the list
of DNS server address for IPv4 and IPv6 respectively. The address of DNS
servers is structured into DHCPACK packet and feed into the same DHCP packet
processing functions to ensure the network interface is setting up the same way
it used to be.

Signed-off-by: Michael Chang <mchang@suse.com>
Signed-off-by: Ken Lin <ken.lin@hpe.com>

Patch-Name: efinet_set_dns_from_uefi_proto.patch
2016-11-01 10:49:01 +00:00
..
boot Add configure option to reduce visual clutter at boot time 2016-09-19 13:35:18 +01:00
bus usbtrans: Fix memory coherence and use-after-free. 2016-02-27 13:40:52 +01:00
commands Add configure option to enable gfxpayload=keep dynamically 2016-09-19 13:35:19 +01:00
disk efidisk: Respect block_io_protocol buffer alignment 2016-02-27 13:44:59 +01:00
efiemu efiemu: Fix compilation failure 2016-01-22 14:10:30 +01:00
font Document intentional fallthroughs. 2015-01-27 17:17:58 +01:00
fs Fix warnings when compiling with -O3 2016-02-17 17:56:41 +01:00
gdb With Apple assembly in .macro environvemnt you have to use $$ instead 2013-11-24 07:08:18 +01:00
gettext Silence error messages when translations are unavailable 2016-09-18 18:15:55 +01:00
gfxmenu gfxmenu: fix memory leak 2016-01-12 21:52:50 +03:00
gnulib Import grub2_2.02~beta3.orig.tar.xz 2016-09-18 17:40:00 +01:00
hello * grub-core/commands/gptsync.c: Fix typographic quoting. 2012-03-03 13:05:08 +01:00
hook * grub-core/hook/datehook.c (grub_read_hook_datetime): Small stylistic 2011-11-11 21:03:49 +01:00
io gzio: Optimize by removing division. 2015-02-26 22:10:09 +01:00
kern misc: fix invalid character recongition in strto*l 2016-11-01 10:49:01 +00:00
lib Import grub2_2.02~beta3.orig.tar.xz 2016-09-18 17:40:00 +01:00
loader If running under UEFI secure boot, attempt to use linuxefi loader 2016-09-19 13:35:18 +01:00
mmap Translate UEFI persistent memory type 2015-12-15 10:25:34 +03:00
net efinet: Setting DNS server from UEFI protocol 2016-11-01 10:49:01 +00:00
normal Add configure option to bypass boot menu if possible 2016-09-19 13:35:18 +01:00
osdep Tell zpool to emit full device names 2016-11-01 10:44:32 +00:00
partmap disk/ldm, partmap/msdos.c: fix spelling error 2015-08-22 21:22:41 +02:00
parttool * grub-core/net/http.c: Add TRANSLATORS comments. 2012-03-05 16:42:26 +01:00
script yylex: use grub_fatal for exit. 2016-02-12 12:34:54 +01:00
term Include a text attribute reset in the clear command for ppc 2016-09-19 13:35:19 +01:00
tests Regenerate checksums 2016-02-26 11:37:47 +01:00
video Blacklist 1440x900x32 from VBE preferred mode handling 2016-09-18 18:15:56 +01:00
gdb_grub.in * grub-core/gdb_grub.in: Fix overflow and wrong field. 2013-10-14 03:40:20 +02:00
genemuinit.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genemuinitheader.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genmod.sh.in Add missing BUILD_EXEEXT 2016-01-01 12:06:40 +03:00
genmoddep.awk genmoddep.awk: Add a test that we have no circular dependencies 2015-11-08 20:00:27 +01:00
gensyminfo.sh.in * grub-core/gensyminfo.sh.in: Handle the case of portable output 2013-11-11 23:05:53 +01:00
gensymlist.sh Make 'make check' work on emu. 2013-04-27 02:00:16 +02:00
gentrigtables.c * grub-core/gentrigtables.c: Make tables const. 2013-03-01 11:15:09 +01:00
gmodule.pl.in * grub-core/gmodule.pl.in: Accept newer binutils which output 2014-09-21 18:23:23 +02:00
gnulib-fix-null-deref.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-fix-width.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-abort.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-gets.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
Makefile.am Split pmtimer wait and tsc measurement from pmtimer tsc calibration. 2016-02-12 11:40:51 +01:00
Makefile.core.am Import grub2_2.02~beta3.orig.tar.xz 2016-09-18 17:40:00 +01:00
Makefile.core.def Add configure option to enable gfxpayload=keep dynamically 2016-09-19 13:35:19 +01:00
Makefile.gcry.def Import grub2_2.02~beta3.orig.tar.xz 2016-09-18 17:40:00 +01:00
Makefile.in Import grub2_2.02~beta3.orig.tar.xz 2016-09-18 17:40:00 +01:00
modinfo.sh.in modinfo.sh.in: Add missing config variables. 2015-03-27 12:18:25 +01:00
unidata.c Import grub2_2.02~beta3.orig.tar.xz 2016-09-18 17:40:00 +01:00