freebsd-skq/sys/boot/common
tsoome 7303b6b47f 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
crc32.c
crc32.h
dev_net.c loader: network read rework 2017-05-06 20:32:27 +00:00
dev_net.h
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
gpt.h
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
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
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
load_elf.c
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
Makefile.depend
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
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
pnp.c Really make WITHOUT_FORTH (MK_FORTH==no) work. The recent inclusion of 2016-10-25 17:31:57 +00:00
rbx.h
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