Page MenuHomeFreeBSD

Enter and exit the network epoch for async IPsec callbacks.
ClosedPublic

Authored by jhb on Jun 25 2020, 12:49 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Dec 12, 6:07 PM
Unknown Object (File)
Oct 1 2024, 7:26 PM
Unknown Object (File)
Sep 28 2024, 5:00 AM
Unknown Object (File)
Sep 24 2024, 12:14 AM
Unknown Object (File)
Sep 21 2024, 1:35 AM
Unknown Object (File)
Sep 21 2024, 1:35 AM
Unknown Object (File)
Sep 21 2024, 1:35 AM
Unknown Object (File)
Sep 20 2024, 6:36 PM
Subscribers

Details

Summary

When an IPsec packet has been encrypted or decrypted, the next step in
the packet's traversal through the network stack is invoked from a
crypto worker thread, not from the original calling thread. These
threads need to enter the network epoch before passing packets down to
IP output routines or up to transport protocols.

Test Plan
  • tried IPsec with a kernel with INVARIANTS on head and it promptly fell over with assertion failures (not sure why I didn't see this previously since the assertions went in)
  • tested with IPv4 (AES-GCM, IPcomp (sort of, I was able to get a single ping reply back, but not others), AES-CBC + SHA1), and IPv6 (AES-GCM)

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 31947
Build 29498: arc lint + arc unit