freebsd-skq/sys/netinet
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
..
cc Import an implementation of the CAIA Delay-Gradient (CDG) congestion control 2013-07-02 08:44:56 +00:00
khelp The TCP PAWS fix for kernels with fast tick rates (r231767) changed the TCP 2012-08-17 01:49:51 +00:00
libalias In m_megapullup() instead of reserving some space at the end of packet, 2013-03-17 07:37:10 +00:00
accf_data.c
accf_dns.c
accf_http.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
cc.h
icmp6.h Migrate structs in6_ifstat and icmp6_ifstat to PCPU counters. 2013-07-09 09:59:46 +00:00
icmp_var.h Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
if_atm.c Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_atm.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_ether.c Add m_clrprotoflags() to clear protocol specific mbuf flags at up and 2013-08-19 13:27:32 +00:00
if_ether.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
igmp_var.h
igmp.c Restructure the mbuf pkthdr to make it fit for upcoming capabilities and 2013-08-24 19:51:18 +00:00
igmp.h
in_cksum.c nobody uses this file except the userspace ipfw code, but the cast 2012-07-31 08:04:49 +00:00
in_debug.c Remove last remnants of classful addressing: 2011-10-15 16:28:06 +00:00
in_gif.c Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
in_gif.h
in_mcast.c Fix an integer overflow in computing the size of a temporary buffer 2013-08-22 00:51:37 +00:00
in_pcb.c A complete duplication of binding should be allowed if on both new and 2013-07-12 19:08:33 +00:00
in_pcb.h In r227207, to fix the issue with possible NULL inp_socket pointer 2013-07-04 18:38:00 +00:00
in_pcbgroup.c
in_proto.c Bunch of fixes to pfsync(4) module load/unload: 2012-01-09 08:50:22 +00:00
in_rmx.c Cleanup documentation: cloning route support has been removed in r186119. 2012-10-13 09:31:01 +00:00
in_systm.h
in_var.h Back out r249318, r249320 and r249327 due to a heisenbug most 2013-05-06 16:42:18 +00:00
in.c Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
in.h Move IPPROTO_IPV6 from #ifdef __BSD_VISIBLE to #if __POSIX_VISIBLE >= 201112 2013-04-27 23:36:01 +00:00
ip6.h Use IP6STAT_INC/IP6STAT_DEC macros to update ip6 stats. 2013-04-09 07:11:22 +00:00
ip_carp.c Virtualize carp(4) variables to have per vnet control. 2013-08-13 19:59:49 +00:00
ip_carp.h Migrate struct carpstats to PCPU counters. 2013-07-09 10:02:51 +00:00
ip_divert.c Switch the entire IPv4 stack to keep the IP packet header 2012-10-22 21:09:03 +00:00
ip_divert.h Various cleanup done in ipfw3-head branch including: 2010-01-04 19:01:22 +00:00
ip_dummynet.h s/lenght/length/ in comments 2012-08-07 07:52:25 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c Add m_clrprotoflags() to clear protocol specific mbuf flags at up and 2013-08-19 13:27:32 +00:00
ip_fw.h Add ipfw support for setting/matching DiffServ codepoints (DSCP). 2013-03-20 10:35:33 +00:00
ip_gre.c Add IFF_MONITOR support to gre(4). 2013-05-11 19:05:38 +00:00
ip_gre.h
ip_icmp.c Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
ip_icmp.h
ip_id.c Back out r249318, r249320 and r249327 due to a heisenbug most 2013-05-06 16:42:18 +00:00
ip_input.c Restructure the mbuf pkthdr to make it fit for upcoming capabilities and 2013-08-24 19:51:18 +00:00
ip_ipsec.c Switch the entire IPv4 stack to keep the IP packet header 2012-10-22 21:09:03 +00:00
ip_ipsec.h
ip_mroute.c Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
ip_mroute.h Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
ip_options.c - Replace compat macros with function calls. 2013-03-16 08:58:28 +00:00
ip_options.h In ip_stripoptions(): 2012-10-12 09:24:24 +00:00
ip_output.c Add m_clrprotoflags() to clear protocol specific mbuf flags at up and 2013-08-19 13:27:32 +00:00
ip_var.h Move the global M_SKIP_FIREWALL mbuf flags to a protocol layer specific 2013-08-19 11:08:36 +00:00
ip.h Add ToS definitions for DiffServ Codepoints as per RFC2474. 2012-05-04 21:00:32 +00:00
pim_var.h Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
pim.h
raw_ip.c Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
sctp_asconf.c Allow the code to be compiled without warnings for any combination 2013-07-20 13:14:59 +00:00
sctp_asconf.h Pass the src and dst address of a received packet explicitly around. 2012-06-28 16:01:08 +00:00
sctp_auth.c Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
sctp_auth.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_bsd_addr.c Testing an interface property should depend on the interface, not 2012-08-04 08:03:30 +00:00
sctp_bsd_addr.h Do packet logging in a consistent way. 2012-06-24 21:25:54 +00:00
sctp_cc_functions.c Get rid of a gcc'ism. 2012-09-06 07:03:56 +00:00
sctp_constants.h Fix a bug were only 2048 streams where usable even though more than 2013-07-05 10:08:49 +00:00
sctp_crc32.c Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_crc32.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_dtrace_declare.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_dtrace_define.h Specify SDT probe argument types in the probe definition itself rather than 2013-08-15 04:08:55 +00:00
sctp_header.h Don't include a structure containing a flexible array in another 2012-09-07 13:36:42 +00:00
sctp_indata.c Make the features a 64-bit value instead of 32-bit. 2013-08-12 13:52:15 +00:00
sctp_indata.h Code cleanups. 2013-07-03 18:48:43 +00:00
sctp_input.c Remove the large part of struct ipsecstat. Only few fields of this 2013-07-23 14:14:24 +00:00
sctp_input.h Don't include a structure containing a flexible array in another 2012-09-07 13:36:42 +00:00
sctp_lock_bsd.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_os_bsd.h Reorder the mbuf defines to make more sense and group related flags 2013-08-19 14:25:11 +00:00
sctp_os.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_output.c Don't send uninitialized memory (two instances of 4 bytes) in 2013-08-14 21:51:32 +00:00
sctp_output.h Cleanup the handling of address scopes. Announce in the INIT/INIT-ACK 2013-02-09 17:26:14 +00:00
sctp_pcb.c Fix a bug were only 2048 streams where usable even though more than 2013-07-05 10:08:49 +00:00
sctp_pcb.h Make the features a 64-bit value instead of 32-bit. 2013-08-12 13:52:15 +00:00
sctp_peeloff.c Add support for sctp_peeloff() also in the front states of the 2012-11-26 16:44:03 +00:00
sctp_peeloff.h Remove unused function. 2012-11-25 14:25:08 +00:00
sctp_ss_functions.c Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_structs.h Make also the features of the association 64-bit. 2013-08-22 19:28:13 +00:00
sctp_sysctl.c Export the inpcb features as a 64-bit entity. 2013-08-22 20:29:57 +00:00
sctp_sysctl.h Fix a bug were only 2048 streams where usable even though more than 2013-07-05 10:08:49 +00:00
sctp_timer.c Fix a bug where HEARTBEATs were still sent in SHUTDOWN_SENT or 2013-02-09 08:27:08 +00:00
sctp_timer.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_uio.h Export the inpcb features as a 64-bit entity. 2013-08-22 20:29:57 +00:00
sctp_usrreq.c Micro-optimization suggested in 2013-08-01 12:05:23 +00:00
sctp_var.h Whitespace changes due to upstream integration of SCTP changes in the 2012-10-29 20:47:32 +00:00
sctp.h Make the features a 64-bit value instead of 32-bit. 2013-08-12 13:52:15 +00:00
sctputil.c Use LIST_EMPTY when appropriate. 2013-06-02 10:35:08 +00:00
sctputil.h Add support for SCTP/UDP/IPV6. 2012-11-17 20:04:04 +00:00
siftr.c The hashmask returned by hashinit() is a valid index in the returned hash array. 2013-03-07 04:42:20 +00:00
tcp_debug.c Switch the entire IPv4 stack to keep the IP packet header 2012-10-22 21:09:03 +00:00
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c - Update cachelimit after hashsize and bucketlimit were set. 2012-10-19 14:00:03 +00:00
tcp_hostcache.h
tcp_input.c Remove the large part of struct ipsecstat. Only few fields of this 2013-07-23 14:14:24 +00:00
tcp_lro.c Fix tcp_lro_rx_ipv4() for drivers that do not set CSUM_IP_CHECKED. 2013-02-21 17:00:35 +00:00
tcp_lro.h MFp4 bz_ipv6_fast: 2012-05-24 23:03:23 +00:00
tcp_offload.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_offload.h - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_output.c Allow drivers to specify a maximum TSO length in bytes if they are 2013-06-03 12:55:13 +00:00
tcp_reass.c uma_zone_set_max() directly returns the rounded effective zone 2013-02-01 14:21:09 +00:00
tcp_sack.c
tcp_seq.h Fix PAWS (Protect Against Wrapped Sequence numbers) in cases when 2012-02-15 16:09:56 +00:00
tcp_subr.c Allow drivers to specify a maximum TSO length in bytes if they are 2013-06-03 12:55:13 +00:00
tcp_syncache.c Free the non-fatal "timestamp missing" debug string manually as it is 2013-07-16 16:37:08 +00:00
tcp_syncache.h Unbreak VIMAGE by correctly naming the vnet pointer in struct tcp_syncache. 2013-07-12 07:43:56 +00:00
tcp_timer.c - Make callout(9) tickless, relying on eventtimers(4) as backend for 2013-03-04 11:09:56 +00:00
tcp_timer.h Add DELACK to list of timers. 2012-11-27 19:07:28 +00:00
tcp_timewait.c Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
tcp_usrreq.c Add checks for SO_NO_OFFLOAD in a couple of places that I missed earlier 2013-01-26 01:41:42 +00:00
tcp_var.h Use new macros to implement ipstat and tcpstat using PCPU counters. 2013-07-09 09:43:03 +00:00
tcp.h Add placeholder constants to reserve a portion of the socket option 2013-02-01 15:32:20 +00:00
tcpip.h
toecore.c Teach toe_l2_resolve to resolve IPv6 destinations too. 2013-01-26 00:57:29 +00:00
toecore.h Correctly handle the case where an inp has already been dropped by the time 2012-08-21 18:09:33 +00:00
udp_usrreq.c Remove the large part of struct ipsecstat. Only few fields of this 2013-07-23 14:14:24 +00:00
udp_var.h Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
udp.h Add placeholder constants to reserve a portion of the socket option 2013-02-01 15:32:20 +00:00