| #
d439a155
|
| 01-Aug-2025 |
Toomas Soome <tsoome@FreeBSD.org> |
libsa: ip fragment reassembly is buggy
Well, it does not really work and we are getting retransmits. To replicate, set nfs.read_size large enough.
What needs to happen is, we read ethernet packet,
libsa: ip fragment reassembly is buggy
Well, it does not really work and we are getting retransmits. To replicate, set nfs.read_size large enough.
What needs to happen is, we read ethernet packet, if it has IPv4 payload and that payload is fragment, we create reassembly queue (sorted by growing fragment offset) and on last fragment, we can build complete packet. Once done properly, the network load can utilize larger read sizes.
While there, move ARP (and other) processing out of readipv4().
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D51690
show more ...
|
| #
733da235
|
| 31-Jul-2025 |
Toomas Soome <tsoome@FreeBSD.org> |
libsa: errors with pointer conversion
loader ip implementation is using pointer to structure ip to receive the packet and is using this pointer to cast on other data types (namely structure arphdr).
libsa: errors with pointer conversion
loader ip implementation is using pointer to structure ip to receive the packet and is using this pointer to cast on other data types (namely structure arphdr). Problem does arise when those data structures are declared with different alignment rules and when/if the compiler does check those rules. To work around and silence warnings, use void * generic pointer instead.
Error seen with gcc 14 (-Werror=address-of-packed-member).
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D51662
show more ...
|
| #
7c43148a
|
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
stand: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Rem
stand: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
show more ...
|
| #
1d386b48
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
| #
2a22df74
|
| 04-Nov-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339813 through r340125.
|
| #
9319dded
|
| 31-Oct-2018 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Remove unnecessary include from libstand.
|
| #
d439a155
|
| 01-Aug-2025 |
Toomas Soome <tsoome@FreeBSD.org> |
libsa: ip fragment reassembly is buggy
Well, it does not really work and we are getting retransmits. To replicate, set nfs.read_size large enough.
What needs to happen is, we read ethernet packet,
libsa: ip fragment reassembly is buggy
Well, it does not really work and we are getting retransmits. To replicate, set nfs.read_size large enough.
What needs to happen is, we read ethernet packet, if it has IPv4 payload and that payload is fragment, we create reassembly queue (sorted by growing fragment offset) and on last fragment, we can build complete packet. Once done properly, the network load can utilize larger read sizes.
While there, move ARP (and other) processing out of readipv4().
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D51690
show more ...
|
| #
733da235
|
| 31-Jul-2025 |
Toomas Soome <tsoome@FreeBSD.org> |
libsa: errors with pointer conversion
loader ip implementation is using pointer to structure ip to receive the packet and is using this pointer to cast on other data types (namely structure arphdr).
libsa: errors with pointer conversion
loader ip implementation is using pointer to structure ip to receive the packet and is using this pointer to cast on other data types (namely structure arphdr). Problem does arise when those data structures are declared with different alignment rules and when/if the compiler does check those rules. To work around and silence warnings, use void * generic pointer instead.
Error seen with gcc 14 (-Werror=address-of-packed-member).
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D51662
show more ...
|
| #
7c43148a
|
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
stand: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Rem
stand: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
show more ...
|
| #
1d386b48
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
| #
2a22df74
|
| 04-Nov-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339813 through r340125.
|
| #
9319dded
|
| 31-Oct-2018 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Remove unnecessary include from libstand.
|
| #
502b7cf9
|
| 14-Feb-2018 |
Kyle Evans <kevans@FreeBSD.org> |
libsa: Fix IP recv timeout
readip() doesn't, at the moment, properly indicate to callers that it has timed out. One can tell that it's timed out if errno == EAGAIN when it returns, but this is not i
libsa: Fix IP recv timeout
readip() doesn't, at the moment, properly indicate to callers that it has timed out. One can tell that it's timed out if errno == EAGAIN when it returns, but this is not ideal. Restructure it a little bit to explicitly set errno to ETIMEDOUT if we've exhausted tleft.
I found two places that care about where it timed out or not: sendrecv in net.c and sendrecv_tftp. Both are structured to pass smaller timeout values to readip while tracking a larger timeout. Neither of them were able to do this properly with readip not indicating ETIMEDOUT, so fix it.
While here, straighten out the time (t/t1) usage in sendrecv_tftp.
This would have manifested itself in periodic failures to NFS/TFTP boot for no apparent reason because MINTMO/MAXTMO were not actually being respected properly. Problems were not reported with NFS, only TFTP.
Reported by: sbruno Reviewed by: sbruno, tsoome MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D14350
show more ...
|
| #
ca987d46
|
| 14-Nov-2017 |
Warner Losh <imp@FreeBSD.org> |
Move sys/boot to stand. Fix all references to new location
Sponsored by: Netflix
|
| #
47243561
|
| 18-Oct-2017 |
Toomas Soome <tsoome@FreeBSD.org> |
libsa/ip: stop read loop on bad fragments
Lets try to clear out from case of overlapping etc fragments and stop read.
Reported by: Dan McDonald
|
| #
9d3fb104
|
| 18-Oct-2017 |
Toomas Soome <tsoome@FreeBSD.org> |
libsa/ip.c: misplaced comment, ip_v is half char, not ip_p
The comment should be at previous line.
Reported by: Dan McDonald
|
| #
4eb1313f
|
| 12-Oct-2017 |
Warner Losh <imp@FreeBSD.org> |
Move lib/libstand to sys/boot/libsa
Move the sources to sys/boot. Make adjustments related to the move. Kill LIBSTAND_SRC since it's no longer needed.
Sponsored by: Netflix
|
| #
c48eb1f4
|
| 15-May-2017 |
Toomas Soome <tsoome@FreeBSD.org> |
loader: add ip layer code into libstand
Implement simple separate ip module and fragment re-assembly.
The work is based on send and receive previously implemented in udp.c, moved to ip.c and added
loader: add ip layer code into libstand
Implement simple separate ip module and fragment re-assembly.
The work is based on send and receive previously implemented in udp.c, moved to ip.c and added the ip fragment re-assembly.
This change allows to specify larger tftp or nfs payload, such as: tftp.blksize=4096 or nfs.read_size=4096
Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D10631
show more ...
|