freebsd-skq/sys/boot/common
Toomas Soome da8fb057e5 loader: network read rework
The current read from network is working from up to down - we have some
protocol needing the data from the network, so we build the buffer space
for that protocol, add the extra space for headers and pass this buffer
down to be filled by nif get call in hope, we have guessed the incoming
packet size right. Amazingly enough this approach mostly does work, but
not always...

So, this update does work from down to up - we allocate buffer (based
on MTU or frame size info), fill it up, and pass on for upper layers.
The obvious problem is that when we should free the buffer - if at all.

In the current implementation the upper layer will free the packet on error
or when the packet is no longer needed.

While working on the issue, the additional issue did pop up - the bios
implementation does not have generic get/put interface but is using pxe
udpsend/udpreceive instead. So the udp calls are gone and undi interface
is implemented instead. Which in turn means slight other changes as we
do not need to have duplicated pxe implementation and can just use dev_net.

To align packet content, the actual read from nic is using shifted buffer by
ETHER_ALIGN (2).

Reviewed by:	bapt
Differential Revision:	https://reviews.freebsd.org/D10232
2017-05-06 20:32:27 +00:00
..
bcache.c loader: want mechanism to avoid RA with bcache 2017-04-06 15:57:53 +00:00
boot.c loader is filling fixed length command_errbuf with sprintf() and is trusting 2016-08-20 16:23:19 +00:00
bootstrap.h loader/multiboot: fix multiboot loading 2017-04-13 09:59:12 +00:00
commands.c loader: Avoid possible overflow via environment variable 2017-04-13 17:11:49 +00:00
console.c Prevent loader.conf load failure due to unknown console entries 2016-01-21 15:27:44 +00:00
crc32.c
crc32.h
dev_net.c loader: network read rework 2017-05-06 20:32:27 +00:00
dev_net.h Refactor net_getparams() to make it easier to get params from sources other 2015-05-18 15:46:43 +00:00
devopen.c
disk.c loader: want mechanism to avoid RA with bcache 2017-04-06 15:57:53 +00:00
disk.h loader: remove open_disk cache 2017-03-16 12:04:43 +00:00
gpt.c Implement GELI (AES-XTS and AES-CBC only) in gptboot and gptzfsboot 2016-03-16 23:12:19 +00:00
gpt.h Implement GELI (AES-XTS and AES-CBC only) in gptboot and gptzfsboot 2016-03-16 23:12:19 +00:00
help.common
install.c Add support for LOADER_RC setting in the pkgfs manifest (defaults to 2016-11-11 17:41:17 +00:00
interp_backslash.c sys/boot/common: use of spaces vs. TAB. 2016-05-12 01:19:11 +00:00
interp_forth.c Reduce boot loader version string duplication 2016-12-18 13:57:23 +00:00
interp_parse.c Improve boot loader quote parsing 2016-07-30 17:53:37 +00:00
interp.c The file /boot/boot.conf existed for the 3.0 release (r38764). It was 2016-10-14 16:05:44 +00:00
isapnp.c sys/boot/common: use of spaces vs. TAB. 2016-05-12 01:19:11 +00:00
isapnp.h Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
load_elf32_obj.c
load_elf32.c
load_elf64_obj.c
load_elf64.c
load_elf_obj.c Use the ABI-prescribed name for SHT_X86_64_UNWIND in the loader and 2016-04-08 10:23:48 +00:00
load_elf.c Don't set the offset when loading the kernel on the arm loader.efi. The 2016-02-09 09:39:30 +00:00
loader.8 The file /boot/boot.conf existed for the 3.0 release (r38764). It was 2016-10-14 16:05:44 +00:00
ls.c loader: ls command should display file types properly 2017-03-28 21:50:11 +00:00
Makefile Install loader(8) and zfsloader(8) only once 2015-06-19 05:42:24 +00:00
Makefile.depend META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
Makefile.inc sys/boot/common: Make geli(4) support optional in MI sources 2017-03-28 06:39:54 +00:00
md.c loader: F_READ/F_WRITE should be checked against masked flag 2017-04-18 18:07:54 +00:00
merge_help.awk
misc.c Enable warnings in EFI boot code 2016-01-12 02:17:39 +00:00
module.c loader/multiboot: fix multiboot loading 2017-04-13 09:59:12 +00:00
newvers.sh Build loaders reproducibly when WITH_REPRODUCIBLE_BUILD 2016-12-19 14:45:59 +00:00
panic.c
part.c loader: part.c cstyle cleanup 2017-04-06 15:42:12 +00:00
part.h loader: Implement disk_ioctl() to support DIOCGSECTORSIZE and DIOCGMEDIASIZE. 2017-02-06 08:26:45 +00:00
paths.h Fix mistake when transitioning to the new defines with ZFS loader. I 2016-01-27 16:36:18 +00:00
pnp.c Really make WITHOUT_FORTH (MK_FORTH==no) work. The recent inclusion of 2016-10-25 17:31:57 +00:00
rbx.h RBX_ defines are in rbx.h, move it there. 2016-01-26 06:26:44 +00:00
reloc_elf32.c
reloc_elf64.c
reloc_elf.c Don't include <errno.h> in reloc_elf.c, as it includes <stand.h> just 2017-01-11 18:47:00 +00:00
self_reloc.c EFI loaders: parse rela relocations on amd64 2016-12-01 14:28:37 +00:00
ufsread.c ufsread: Use appropriate UFS_MAXNAMLEN constant 2017-03-07 21:40:01 +00:00
util.c Loader paged/pageable data is not always paged. 2016-11-08 06:50:18 +00:00
util.h Loader paged/pageable data is not always paged. 2016-11-08 06:50:18 +00:00
zfsloader.8 Misc mdoc fixes: 2014-11-23 21:00:00 +00:00