aboutsummaryrefslogtreecommitdiff
path: root/contrib/expat/xmlwf
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2025-08-07 14:48:45 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2025-08-07 14:55:16 +0000
commitc224b2ce7de0faa28ea87edf6e74de0e4e9d33f9 (patch)
treeea4af8974837b4707d2bde5d2ba6b10aad9c4752 /contrib/expat/xmlwf
parenta39277782140d65abd792cf06694661a526464d0 (diff)
iflib: don't pullup UDP payloads to the TCP header sizeHEADmain
The IPv4 packet parsing logic in iflib is incredibly complex, prematurely optimized, and believes all the world is TCP. This causes it to pullup part of the UDP payload into the packet header, causing unneeded memory copies. This impacts a project I'm working on, and also impacts nearly any kernel user of UDP, like NFS. Eg, NFS over UDP will result in pullups for every datagram sent over an iflib NIC. This patch: - adds parsing for UDP to iflib - attempts to pull up the correct header size, based on UDP or TCP protocol type. - simplifies packet parsing in iflib by - no longer special casing having an ethernet header in a packet by itself - no longer checking that we're trying to pullup something beyond the end of the packet. Since we're no longer trying to pull up a larger TCP header, attempting to pullup something larger than the packet should no longer happen. If it does, the packet is malformed and m_pullup will return an error when it runs out of data in the mbuf chain Reviewed by: erj, glebius, kbowling Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D51748
Diffstat (limited to 'contrib/expat/xmlwf')
0 files changed, 0 insertions, 0 deletions