2090 Commits

Author SHA1 Message Date
Konstantin Belousov
66923c7b02 Kernel-side infrastructure to implement nvlist-based set/get ifcaps
Reviewed by:	hselasky, jhb, kp (previous version)
Sponsored by:	NVIDIA Networking
MFC after:	3 weeks
Differential revision:	https://reviews.freebsd.org/D32551
2022-07-07 14:22:54 +02:00
Rick Macklem
5f0e04113f uipc_socket.c: Modify MSG_TLSAPPDATA to only do Alert Records
Without this patch, the MSG_TLSAPPDATA flag would cause
soreceive_generic() to return ENXIO for any non-application
data record in a TLS receive stream.

This works ok for TLS1.2, since Alert records appear to be
the only non-application data records received.
However, for TLS1.3, there can be post-handshake handshake
records, such as NewSessionKey sent to the client from the
server. These handshake records cannot be handled by the
upcall which does an SSL_read() with length == 0.

It appears that the client can simply throw away these
NewSessionKey records, but to do so, it needs to receive
them within the kernel.

This patch modifies the semantics of MSG_TLSAPPDATA slightly,
so that it only applies to Alert records and not Handshake
records. It is needed to allow the krpc to work with KTLS1.3.

Reviewed by:	hselasky
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D35170
2022-07-07 14:22:54 +02:00
Kristof Provost
ee823c1666 Widen ifnet_detach_sxlock coverage
Widen the ifnet_detach_sxlock to cover the entire vnet sysuninit code.
This ensures that we can't end up having the vnet_sysuninit free the UDP
pcb while the detach code is running and trying to purge the UDP pcb.

MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D28530
2022-07-07 14:22:54 +02:00
Rick Macklem
60f67a1f37 Add the MSG_TLSAPPDATA flag to indicate "return ENXIO" for non-application TLS data records.
The kernel RPC cannot process non-application data records when
using TLS. It must to an upcall to a userspace daemon that will
call SSL_read() to process them.

This patch adds a new flag called MSG_TLSAPPDATA that the kernel
RPC can use to tell sorecieve() to return ENXIO instead of a non-application
data record, when that is what is at the top of the receive queue.
I put the code in #ifdef KERN_TLS/#endif, although it will build without
that, so that it is recognized as only useful when KERN_TLS is enabled.
The alternative to doing this is to have the kernel RPC re-queue the
non-application data message after receiving it, but that seems more
complicated and might introduce message ordering issues when there
are multiple non-application data records one after another.

I do not know what, if any, changes will be required to support TLS1.3.

Reviewed by:	glebius
Differential Revision:	https://reviews.freebsd.org/D25923
2022-07-07 14:22:54 +02:00
Sebastian Huber
731ec09ae0 CONTRIBUTING.rst: Add FreeBSD baseline update hints 2022-07-07 14:22:54 +02:00
Sebastian Huber
9a88b07c33 user-space: Request FreeBSD bitset API
This is required for recent Newlib versions.

Update #4667.
2022-06-30 17:40:33 +02:00
Sebastian Huber
c5c5a199c6 if_lpe.c: Use interface transmit
This avoids the need for a transmit task and transmit interrupts.
2022-06-24 07:33:29 +02:00
Sebastian Huber
1056349b4e if_lpe.c: Move transmit initialization
Move the transmit initialization out of the transmit task to be able to
remove the transmit task in the next patch.
2022-06-24 07:32:50 +02:00
Sebastian Huber
ff4c60af7a if_lpe.c: Port to LibBSD 2022-06-24 07:32:50 +02:00
Sebastian Huber
2722615130 if_lpe.c: Import legacy LPC Ethernet driver
The standard FreeBSD MII support causes severe problems on the LPC3200
chip family.  If an Ethernet module register is accessed while there is
no clock from the PHY, the chip completely locks up and only an external
watchdog can recover from this state.  The legacy driver had a custom
PHY management code which helped to avoid such issues.  The if_lpe.c
driver is no longer maintained by FreeBSD.
2022-06-24 07:32:50 +02:00
Sebastian Huber
3f0f73956d build: Ensure mandatory compiler/linker flags
Make sure the flags are present in all build configurations.
2022-06-23 10:46:17 +02:00
Sebastian Huber
117e0cdafd README.rst: Remove RTEMS_POSIX_API from BSP config 2022-06-22 17:35:50 +02:00
Sebastian Huber
c935f1def2 build: Do not require RTEMS_POSIX_API 2022-06-22 17:25:12 +02:00
Sebastian Huber
da3551ad94 netstat: Do not use signals 2022-06-22 17:25:12 +02:00
Sebastian Huber
60986c25e0 wlanstats: Do not use signals 2022-06-22 17:25:12 +02:00
Sebastian Huber
c178af7dfa ping6: Do not use signals 2022-06-22 17:25:12 +02:00
Sebastian Huber
04564e61c6 ping: Do not use signals 2022-06-22 17:25:12 +02:00
Sebastian Huber
86d6b72349 openssl: Do not use signals 2022-06-22 17:25:12 +02:00
Sebastian Huber
204790a525 wpa: Use CONFIG_ELOOP_KQUEUE
This avoids issues with the fd_set size.
2022-06-22 17:25:12 +02:00
Sebastian Huber
ef338b80c0 wpa: Do not use signals 2022-06-22 17:25:12 +02:00
Sebastian Huber
44e06dada2 ipsec-tools: Do not use signals 2022-06-22 17:25:12 +02:00
Sebastian Huber
31e3906ed4 racoon: Do not rely on <sys/types.h> 2022-06-22 17:25:12 +02:00
Sebastian Huber
0761774abd Revert white space changes 2022-06-22 17:25:12 +02:00
Chris Johns
c56a34f547 freebsd/nfsv4: Fix misaligned 64bit user dirent write 2022-06-20 13:04:11 +10:00
Sebastian Huber
26963fa0cd nfs01: Fix warnings 2022-06-10 08:06:42 +02:00
Sebastian Huber
2e696c6232 CONTRIBUTING.rst: Warn about white space changes 2022-06-09 08:40:16 +02:00
Sebastian Huber
dba9346b43 uma_core.c: Fix use of uninitialized variable
Update #4475.
2022-06-08 15:16:36 +02:00
Christian Mauderer
c9b4bed650 if_ffec: Allow PHY that is connected to other FFEC
The i.MX6UL (and some others from the i.MX family) have shared MDIO
lines for multiple FFECs. This patch allows to use the MDIO interface
from another Ethernet controller.

Note that you have to make sure that the FFECs are initialized in the
right order. Normally that can be done via FDT.
2022-06-07 09:08:04 +02:00
Christian Mauderer
2a6a230e65 if_ffec: Reduce buffer size
Typical embedded systems don't have that much memory. Reduce the buffer
size to something more sensible for the usual type of application.
2022-06-07 09:08:00 +02:00
Sebastian Huber
ed25b390fc Use rtems_task_exit() 2022-06-01 10:34:36 +02:00
Sebastian Huber
61f646d9b9 if_atsam: Recover from receive freezes
Under unknown conditions the receive path ended up in a frozen state.
In this state, the DMA and driver descriptor head were equal and all
receive descriptors had the used bit set.  So, the DMA was unable to
store received frames.  However, the receive daemon was never woken up
to refill the receive buffers.  It seems that the RXUBR interrupt can be
used to recover from this state.

Update #4652.
2022-06-01 09:57:56 +02:00
Sebastian Huber
8588e9542e if_atsam: Shorten sysctl names
Update #4652.
2022-06-01 09:57:53 +02:00
Sebastian Huber
bd56cb2e59 if_atsam: Add tx/rx desc sysctls
Update #4652.
2022-06-01 09:57:50 +02:00
Sebastian Huber
683bae95b3 if_atsam: Add register sysctls
Update #4652.
2022-06-01 09:57:47 +02:00
Sebastian Huber
07e282034c if_atsam: Allow stats reset via sysctl
Update #4652.
2022-06-01 09:57:28 +02:00
Sebastian Huber
593f7c1003 libbsd.txt: Move issues and TODO 2022-05-25 08:06:57 +02:00
Sebastian Huber
bb92546987 libbsd.txt: Move system control hints
Generalize hint.
2022-05-25 08:06:57 +02:00
Sebastian Huber
0a1a47c11f libbsd.txt: Move initialization details 2022-05-25 08:06:57 +02:00
Sebastian Huber
41496dab56 libbsd.txt: Move IPsec description 2022-05-25 08:06:57 +02:00
Sebastian Huber
f2583218dd libbsd.txt: Move WLAN description 2022-05-25 08:06:57 +02:00
Sebastian Huber
5a97d50361 libbsd.txt: Move PF description 2022-05-25 08:06:57 +02:00
Sebastian Huber
8e278327be libbsd.txt: Move ported kernel features
Remove obsolete file listing.
2022-05-25 08:06:57 +02:00
Sebastian Huber
76e7a9e84d libbsd.txt: Move Qemu notes 2022-05-25 08:06:57 +02:00
Sebastian Huber
0283481dab libbsd.txt: Move network interface driver hints 2022-05-25 08:06:57 +02:00
Sebastian Huber
b375969a2f libbsd.txt: Move features
Add more features and commands.
2022-05-25 08:06:57 +02:00
Sebastian Huber
1c0c1a738b libbsd.txt: Move initialization description 2022-05-25 08:06:57 +02:00
Sebastian Huber
23636df5cb libbsd.txt: Move configuration of network tests 2022-05-25 08:06:57 +02:00
Sebastian Huber
6db1763972 libbsd.txt: Remove installation overview
This is already covered by README.md
2022-05-25 08:06:57 +02:00
Sebastian Huber
31bd0d7047 libbsd.txt: Move BSP related content 2022-05-25 08:06:57 +02:00
Sebastian Huber
00365c0789 libbsd.txt: Move introduction content 2022-05-25 08:06:57 +02:00