freebsd-dev/sys/netgraph
Robert Watson c0b99ffa02 The socket field so_state is used to hold a variety of socket related
flags relating to several aspects of socket functionality.  This change
breaks out several bits relating to send and receive operation into a
new per-socket buffer field, sb_state, in order to facilitate locking.
This is required because, in order to provide more granular locking of
sockets, different state fields have different locking properties.  The
following fields are moved to sb_state:

  SS_CANTRCVMORE            (so_state)
  SS_CANTSENDMORE           (so_state)
  SS_RCVATMARK              (so_state)

Rename respectively to:

  SBS_CANTRCVMORE           (so_rcv.sb_state)
  SBS_CANTSENDMORE          (so_snd.sb_state)
  SBS_RCVATMARK             (so_rcv.sb_state)

This facilitates locking by isolating fields to be located with other
identically locked fields, and permits greater granularity in socket
locking by avoiding storing fields with different locking semantics in
the same short (avoiding locking conflicts).  In the future, we may
wish to coallesce sb_state and sb_flags; for the time being I leave
them separate and there is no additional memory overhead due to the
packing/alignment of shorts in the socket buffer structure.
2004-06-14 18:16:22 +00:00
..
atm Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
bluetooth The socket field so_state is used to hold a variety of socket related 2004-06-14 18:16:22 +00:00
netgraph.h Add a new netgraph method to allow restoration of some 2004-05-29 07:21:46 +00:00
ng_async.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_async.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_atmllc.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_atmllc.h Add a netgraph node to handle ATM LLC encapsulation. This currently handles 2004-03-08 10:54:35 +00:00
ng_base.c Add a new netgraph method to allow restoration of some 2004-05-29 07:21:46 +00:00
ng_bpf.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_bpf.h Get rid of the deprecated *LEN constants in favour of the new 2004-01-26 14:05:31 +00:00
ng_bridge.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_bridge.h Fix GCC warnings caused by initializing a zero length array. In the process, 2002-05-31 23:48:03 +00:00
ng_cisco.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_cisco.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_device.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_device.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_echo.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_echo.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_eiface.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_eiface.h Use the (now standard) Ethernet address parse type. 2003-12-17 13:03:32 +00:00
ng_etf.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_etf.h Get rid of the deprecated *LEN constants in favour of the new 2004-01-26 14:05:31 +00:00
ng_ether.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_ether.h Backout previous change, it breaks build and it is not needed 2004-02-20 08:26:27 +00:00
ng_fec.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_fec.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_frame_relay.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_frame_relay.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_gif_demux.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_gif_demux.h Finish driving a stake through the heart of netns and the associated 2003-03-05 19:24:24 +00:00
ng_gif.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_gif.h
ng_hole.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_hole.h Whitespace nit. 2004-05-19 11:35:03 +00:00
ng_hub.c Don't give up if sending to one link fails, continue. 2004-04-17 23:52:57 +00:00
ng_hub.h A simple packet distribution node type that acts like an Ethernet hub. 2004-04-17 12:42:17 +00:00
ng_iface.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_iface.h Implemented the "getifindex" control message. 2004-03-07 23:00:44 +00:00
ng_ip_input.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_ip_input.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_ksocket.c The socket field so_state is used to hold a variety of socket related 2004-06-14 18:16:22 +00:00
ng_ksocket.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_l2tp.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_l2tp.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_lmi.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_lmi.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_message.h Now that mbufs are allocated using uma, 2004-06-07 22:11:12 +00:00
ng_mppc.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_mppc.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_one2many.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_one2many.h Backout previous change, it breaks build and it is not needed 2004-02-20 08:26:27 +00:00
ng_parse.c Fix a memory leak in ng_get_string_token. A dynamically-allocated 2004-04-29 01:37:11 +00:00
ng_parse.h Get rid of the deprecated *LEN constants in favour of the new 2004-01-26 14:05:31 +00:00
ng_ppp.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_ppp.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_pppoe.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_pppoe.h Make the vaule of PTT_RELAY_SID match the RFC. This should help PPPoE 2004-03-18 12:34:14 +00:00
ng_pptpgre.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_pptpgre.h Add 'enableWindowing' configuration knob to the ng_pptpgre(4) netgraph node. 2004-04-26 14:26:54 +00:00
ng_rfc1490.c Add the capacity for the rfc1490 node to handle cisco style encasulation 2004-06-13 15:44:00 +00:00
ng_rfc1490.h Add the capacity for the rfc1490 node to handle cisco style encasulation 2004-06-13 15:44:00 +00:00
ng_sample.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_sample.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_socket.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_socket.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_socketvar.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_source.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_source.h Define the new command NGM_SOURCE_START_NOW to allow generation of 2004-01-26 14:54:39 +00:00
ng_split.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_split.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_sppp.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_sppp.h sppp (4) to netgraph (4) node. As always: I'l connect it to the 2004-03-24 17:24:01 +00:00
ng_tee.c Removed a leftover from the previous change. 2004-06-01 13:15:32 +00:00
ng_tee.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_tty.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_tty.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_UI.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_UI.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_vjc.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_vjc.h Use a single style of multiple inclusion protection for Netgraph headers. 2003-11-11 12:30:37 +00:00
ng_vlan.c Switch to using C99 sparse initialisers for the type methods array. 2004-05-29 00:51:19 +00:00
ng_vlan.h Netgraph node type for IEEE 802.1Q VLAN tagging. 2004-03-01 17:22:16 +00:00
NOTES