1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00
freebsd/sys
Andre Oppermann 1b4381afbb Restructure the mbuf pkthdr to make it fit for upcoming capabilities and
features.  The changes in particular are:

o Remove rarely used "header" pointer and replace it with a 64bit protocol/
  layer specific union PH_loc for local use.  Protocols can flexibly overlay
  their own 8 to 64 bit fields to store information while the packet is
  worked on.

o Mechanically convert IP reassembly, IGMP/MLD and ATM to use pkthdr.PH_loc
  instead of pkthdr.header.

o Extend csum_flags to 64bits to allow for additional future offload
  information to be carried (e.g. iSCSI, IPsec offload, and others).

o Move the RSS hash type enumerator from abusing m_flags to its own 8bit
  rsstype field.  Adjust accessor macros.

o Add cosqos field to store Class of Service / Quality of Service information
  with the packet.  It is not yet supported in any drivers but allows us to
  get on par with Cisco/Juniper in routing applications (plus MPLS QoS) with
  a modernized ALTQ.

o Add four 8 bit fields l[2-5]hlen to store the relative header offsets
  from the start of the packet.  This is important for various offload
  capabilities and to relieve the drivers from having to parse the packet
  and protocol headers to find out location of checksums and other
  information.  Header parsing in drivers is a lot of copy-paste and
  unhandled corner cases which we want to avoid.

o Add another flexible 64bit union to map various additional persistent
  packet information, like ether_vtag, tso_segsz and csum fields.
  Depending on the csum_flags settings some fields may have different usage
  making it very flexible and adaptable to future capabilities.

o Restructure the CSUM flags to better signify their outbound (down the
  stack) and inbound (up the stack) use.  The CSUM flags used to be a bit
  chaotic and rather poorly documented leading to incorrect use in many
  places.  Bring clarity into their use through better naming.
  Compatibility mappings are provided to preserve the API.  The drivers
  can be corrected one by one and MFC'd without issue.

o The size of pkthdr stays the same at 48/56bytes (32/64bit architectures).

Sponsored by:	The FreeBSD Foundation
2013-08-24 19:51:18 +00:00
..
amd64 Revert r254501. Instead, reuse the type stability of the struct pmap 2013-08-22 18:12:24 +00:00
arm Revert r254501. Instead, reuse the type stability of the struct pmap 2013-08-22 18:12:24 +00:00
boot Set the hint for physical address of RSDP in hexadecimal as before r223262. 2013-08-23 18:52:36 +00:00
bsm
cam Add new attribute lunname to report only textual LUN-specific device IDs. 2013-08-24 09:42:14 +00:00
cddl MFV r254749: 2013-08-24 00:42:37 +00:00
compat Regenerate after r254491. 2013-08-18 13:38:39 +00:00
conf Add vmx(4), a VMware VMXNET3 ethernet driver ported from OpenBSD 2013-08-23 20:47:16 +00:00
contrib Merge ACPICA 20130823. 2013-08-23 23:25:58 +00:00
crypto Fix const propagation issues to make GCC happy. 2013-07-11 16:27:11 +00:00
ddb
dev Restructure the mbuf pkthdr to make it fit for upcoming capabilities and 2013-08-24 19:51:18 +00:00
fs Allow tmpfs be mounted inside jail. 2013-08-23 22:52:20 +00:00
gdb rename scheduler->swapper and SI_SUB_RUN_SCHEDULER->SI_SUB_LAST 2013-07-24 09:45:31 +00:00
geom Add new attribute lunname to report only textual LUN-specific device IDs. 2013-08-24 09:42:14 +00:00
gnu/fs/reiserfs
i386 Rename definition of HYPERVISOR_VIRT_START to avoid conflict with 2013-08-22 20:07:06 +00:00
ia64 Revert r254501. Instead, reuse the type stability of the struct pmap 2013-08-22 18:12:24 +00:00
isa
kern Restructure the mbuf pkthdr to make it fit for upcoming capabilities and 2013-08-24 19:51:18 +00:00
kgssapi Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
libkern Fix watchdog pretimeout. 2013-07-27 20:47:01 +00:00
mips Some vendors store the mac addresses of arge(4) as a literal sring in the 2013-08-23 13:14:18 +00:00
modules drm: Import drm_buffer.[ch] from Linux 3.8-rc3 2013-08-24 16:14:20 +00:00
net Restructure the mbuf pkthdr to make it fit for upcoming capabilities and 2013-08-24 19:51:18 +00:00
net80211 Add in some backwards compatability hacks to make -HEAD net80211 compile 2013-08-22 05:53:47 +00:00
netatalk
netgraph Add constant for PPP-Max-PayLoad tag. 2013-07-23 10:25:34 +00:00
netinet Restructure the mbuf pkthdr to make it fit for upcoming capabilities and 2013-08-24 19:51:18 +00:00
netinet6 Restructure the mbuf pkthdr to make it fit for upcoming capabilities and 2013-08-24 19:51:18 +00:00
netipsec Remove the large part of struct ipsecstat. Only few fields of this 2013-07-23 14:14:24 +00:00
netipx
netnatm
netpfil Make dummynet use new direct callout(9) execution mechanism. Since the only 2013-08-24 13:34:36 +00:00
netsmb Remove a reference to LK_DRAIN now that lockmgr(9) is gone from this 2013-06-28 20:21:13 +00:00
nfs Changes to allow using BOOTP_NFSROOT and mounting an nfs root filesystem 2013-07-31 19:14:00 +00:00
nfsclient A problem with the old NFS client where large writes to large files 2013-07-04 00:54:23 +00:00
nfsserver - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
nlm
ofed Fix implementation of sock_getname. 2013-08-23 18:54:27 +00:00
opencrypto Make sendfile() a method in the struct fileops. Currently only 2013-08-15 07:54:31 +00:00
pc98 MFi386: r254619 2013-08-22 16:39:59 +00:00
pci Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI 2013-08-12 23:30:01 +00:00
powerpc Return EIO iso -1, the kiic_transfer has an signed return. 2013-08-23 20:39:41 +00:00
rpc Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
security Implement read(2)/write(2) and neccessary lseek(2) for posix shmfd. 2013-08-21 17:45:00 +00:00
sparc64 Revert r254501. Instead, reuse the type stability of the struct pmap 2013-08-22 18:12:24 +00:00
sys Restructure the mbuf pkthdr to make it fit for upcoming capabilities and 2013-08-24 19:51:18 +00:00
teken
tools
ufs Expand the use of stat(2) flags to allow storing some Windows/DOS 2013-08-21 23:04:48 +00:00
vm Addendum to r254141: The call to vm_radix_insert() in vm_page_cache() can 2013-08-23 17:27:12 +00:00
x86 Call set_i8254_freq with MODE_STOP (0) rather than a magic number of 0. 2013-08-15 17:21:06 +00:00
xdr
xen Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
Makefile