From 068d7aa7f1a820dfb2eba78391558db2b2677e57 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 5 Feb 2008 22:28:17 +0000 Subject: 2008-02-05 Joel Sherrill * networking/networkapp.t: Add configuration parameters for network stack efficiency multiplier and default socket buffer sizes. --- doc/networking/networkapp.t | 67 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 5 deletions(-) (limited to 'doc/networking/networkapp.t') diff --git a/doc/networking/networkapp.t b/doc/networking/networkapp.t index cf13c42645..b6d27f0566 100644 --- a/doc/networking/networkapp.t +++ b/doc/networking/networkapp.t @@ -95,6 +95,15 @@ struct rtems_bsdnet_config @{ char *log_host; /* BOOTP */ char *name_server[3]; /* BOOTP */ char *ntp_server[3]; /* BOOTP */ + unsigned long sb_efficiency; /* 2 */ + /* UDP TX: 9216 bytes */ + unsigned long udp_tx_buf_size; + /* UDP RX: 40 * (1024 + sizeof(struct sockaddr_in)) */ + unsigned long udp_rx_buf_size; + /* TCP TX: 16 * 1024 bytes */ + unsigned long tcp_tx_buf_size; + /* TCP TX: 16 * 1024 bytes */ + unsigned long tcp_rx_buf_size; @}; @end group @end example @@ -143,7 +152,7 @@ The name of the Internet domain to which the system belongs. @item char *gateway The Internet host number of the network gateway machine, -specified in `dotted decimal' (@code{129.128.4.1}) form. +specified in 'dotted decimal' (@code{129.128.4.1}) form. @item char *log_host The Internet host number of the machine to which @code{syslog} messages @@ -157,6 +166,54 @@ Internet Domain Name Servers. The Internet host numbers of up to three machines to be used as Network Time Protocol (NTP) Servers. +@item unsigned long sb_efficiency +This is the first of five configuration parameters related to +the amount of memory each socket may consume for buffers. The +TCP/IP stack reserves buffers (e.g. mbufs) for each open socket. The +TCP/IP stack has different limits for the transmit and receive +buffers associated with each TCP and UDP socket. By tuning these +parameters, the application developer can make trade-offs between +memory consumption and performance. The default parameters favor +performance over memory consumption. See +@uref{http://www.rtems.org/ml/rtems-users/2004/february/msg00200.html} +for more details but note that after the RTEMS 4.8 release series, +the sb_efficiency default was changed from @code{8} to @code{2}. + +The user should also be aware of the @code{SO_SNDBUF} and @code{SO_RCVBUF} +IO control operations. These can be used to specify the +send and receive buffer sizes for a specific socket. There +is no standard IO control to change the @code{sb_efficiency} factor. + +The @code{sb_efficiency} parameter is a buffering factor used +in the implementation of the TCP/IP stack. The default is @code{2} +which indicates double buffering. When allocating memory for each +socket, this number is multiplied by the buffer sizes for that socket. + +@item unsigned long udp_tx_buf_size +This configuration parameter specifies the maximum amount of +buffer memory which may be used for UDP sockets to transmit +with. The default size is 9216 bytes which corresponds to +the maximum datagram size. + +@item unsigned long udp_rx_buf_size +This configuration parameter specifies the maximum amount of +buffer memory which may be used for UDP sockets to receive +into. The default size is the following length in bytes: + +@example +40 * (1024 + sizeof(struct sockaddr_in) +@end example + +@item unsigned long tcp_tx_buf_size +This configuration parameter specifies the maximum amount of +buffer memory which may be used for TCP sockets to transmit +with. The default size is sixteen kilobytes. + +@item unsigned long tcp_rx_buf_size +This configuration parameter specifies the maximum amount of +buffer memory which may be used for TCP sockets to receive +into. The default size is sixteen kilobytes. + @end table In addition, the following fields in the @code{rtems_bsdnet_ifconfig} @@ -253,12 +310,12 @@ parameters. @example static struct rtems_bsdnet_ifconfig netdriver_config = @{ - RTEMS_BSP_NETWORK_DRIVER_NAME, - RTEMS_BSP_NETWORK_DRIVER_ATTACH + RTEMS_BSP_NETWORK_DRIVER_NAME, + RTEMS_BSP_NETWORK_DRIVER_ATTACH @}; struct rtems_bsdnet_config rtems_bsdnet_config = @{ - &netdriver_config, - rtems_bsdnet_do_bootp, + &netdriver_config, + rtems_bsdnet_do_bootp, @}; @end example -- cgit v1.2.3