nuttx-apps/netutils
2015-03-29 15:52:46 -06:00
..
codecs Fixing md5 hashing when digest[$i] lower that 16. Sergey <sectus@mail.ru> 2014-11-20 07:10:47 -06:00
dhcpc Some files that now include sys/time.h should no longer include timer.h 2015-02-15 16:38:18 -06:00
dhcpd Add netlib and application hooks for ICMPv6 auto-configuration (still incomplete 2015-02-03 08:01:55 -06:00
discover Add an install target to all makefiles. For the import build, the top-level Makefile now does two passes: (1) builds libapp.a, then (2) installs the programs (not yet finished) 2014-09-06 08:00:47 -06:00
dnsclient Some files that now include sys/time.h should no longer include timer.h 2015-02-15 16:38:18 -06:00
ftpc Fixes for more issues found by cppcheck 2014-11-25 15:26:30 -06:00
ftpd Add some Kconfig dependencies to reduce possibility of bad configurations. Suggested by OrbitalFox 2015-02-25 08:43:25 -06:00
json Add an install target to all makefiles. For the import build, the top-level Makefile now does two passes: (1) builds libapp.a, then (2) installs the programs (not yet finished) 2014-09-06 08:00:47 -06:00
netlib Add some missing dependencies in Kconfig files 2015-03-29 15:52:46 -06:00
ntpclient Suffer the consequences of moving struct timeval to its correct location 2015-02-15 15:18:35 -06:00
pppd Bringing PPPD yet closer to the NuttX coding style 2015-03-11 18:47:04 -06:00
smtp Networking: Replace all references to the macros net_ipaddr_copy, net_ipaddr_hdrcopy, net_ipaddr_cmp, net_ipaddr_hdrcmp, and net_ipaddr_maskcmp with the appropriate IPv4 or IPv6 version of the macro (such as net_ipv4addr_copy). The goal is to support both IPv4 and IPv6 simultaneously. This requires that the macros be distinct and not conditionally defined to one on or the other. 2015-01-16 13:01:08 -06:00
telnetd Fix typo in Telnet Kconfig. From OrbitalFox 2015-02-19 06:40:18 -06:00
tftpc Add some missing dependencies in Kconfig files 2015-03-29 15:52:46 -06:00
thttpd Suffer the consequences of moving struct timeval to its correct location 2015-02-15 15:18:35 -06:00
webclient Add some missing dependencies in Kconfig files 2015-03-29 15:52:46 -06:00
webserver Suffer the consequences of moving struct timeval to its correct location 2015-02-15 15:18:35 -06:00
xmlrpc Add an install target to all makefiles. For the import build, the top-level Makefile now does two passes: (1) builds libapp.a, then (2) installs the programs (not yet finished) 2014-09-06 08:00:47 -06:00
.gitignore Mostly updates and corrections to .gitignore files 2013-04-04 15:39:50 -06:00
Kconfig Add a PPP daemon. From Max Neklyudov 2015-03-11 07:53:04 -06:00
Make.defs Add a PPP daemon. From Max Neklyudov 2015-03-11 07:53:04 -06:00
Makefile Add an install target to all makefiles. For the import build, the top-level Makefile now does two passes: (1) builds libapp.a, then (2) installs the programs (not yet finished) 2014-09-06 08:00:47 -06:00
README.txt Clarify MTU/BUFSIZE in apps/ README.txt files and Documentation 2014-11-16 08:50:36 -06:00

netutils README.txt
^^^^^^^^^^^^^^^^^^^

Contents
--------

  - uIP Applications
  - Other Network Applications
  - Tips for Using Telnetd
  - Tips for Using DHCPC

uIP Applications
^^^^^^^^^^^^^^^^

This directory contains most of the network applications contained
under the uIP-1.0 apps directory.  As the uIP apps/README says,
these applications "are not all heavily tested."  These uIP-based
apps include:

  dhcpc     - Dynamic Host Configuration Protocol (DHCP) client.  See
              apps/include/netutils/dhcpc.h for interface information.
  dnsclient - uIP DNS resolver.  See apps/include/netutils/dnsclient.h
              for interface information.
  smtp      - Simple Mail Transfer Protocol (SMTP) client.  See
              apps/include/netutils/smtp.h for interface information.
  webclient - HTTP web client.  See apps/include/netutils/webclient.h
              for interface information.
  webserver - HTTP web server.  See apps/include/netutils/httpd.h
              for interface information.

You may find additional information on these apps in the uIP forum
accessible through: http://www.sics.se/~adam/uip/index.php/Main_Page .
Some of these (such as the uIP web server) have grown some additional
functionality due primarily to NuttX user contributions.

Other Network Applications
^^^^^^^^^^^^^^^^^^^^^^^^^^

Additional applications that were not part of uIP (but which are
highly influenced by uIP) include:

  dhcpd     - Dynamic Host Configuration Protocol (DHCP) server.  See
              apps/include/netutils/dhcpd.h for interface information.
  discover  - This daemon is useful for discovering devices in local
              networks, especially with DHCP configured devices.  It
              listens for UDP broadcasts which also can include a
              device class so that groups of devices can be discovered.
              It is also possible to address all classes with a kind of
              broadcast discover. (Contributed by Max Holtzberg).
  json      - cJSON is an ultra-lightweight, portable, single-file,
              simple-as-can-be ANSI-C compliant JSON parser, under MIT
              license. Embeddable Lightweight XML-RPC Server discussed at
              http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364.
              This code was taken from http://sourceforge.net/projects/cjson/
              and adapted for NuttX by Darcy Gong.
  tftpc     - TFTP client.  See apps/include/netutils/tftp.h
              for interface information.
  telnetd   - TELNET server.  This is the Telnet logic adapted from
              uIP and generalized for use as the front end to any
              shell.  The telnet daemon creates sessions that are
              "wrapped" as character devices and mapped to stdin,
              stdout, and stderr.  Now the telnet session can be
              inherited by spawned tasks.
  ftpc      - FTP client.  See apps/include/ftpc.h for interface
              information.
  ftpd      - FTP server.   See apps/include/netutils/ftpd.h for interface
              information.
  ntpclient - This is a fragmentary NTP client.  It neither well-tested
              nor mature nor complete at this point in time.
  thttpd    - This is a port of Jef Poskanzer's THTTPD HTPPD server.
              See http://acme.com/software/thttpd/ for general THTTPD
              information.  See apps/include/netutils/thttpd.h
              for interface information. Applications using this thttpd
              will need to provide the following definitions in the
              defconfig file to select the appropriate netutils
              libraries:

                CONFIG_NETUTILS_NETLIB=y
                CONFIG_NETUTILS_THTTPD=y

  xmlrpc    - The Embeddable Lightweight XML-RPC Server discussed at
              http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364

Tips for Using Telnetd
^^^^^^^^^^^^^^^^^^^^^^

Telnetd is set up to be the front end for a shell.  The primary use of
Telnetd in NuttX is to support the NuttShell (NSH) Telnet front end.  See
apps/include/netutils/telnetd.h for information about how to incorporate
Telnetd into your custom applications.

To enable and link the Telnetd daemon, you need to include the following in
in your defconfig file:

  CONFIG_NETUTILS_NETLIB=y
  CONFIG_NETUTILS_TELNETD=y

Also if the Telnet console is enabled, make sure that you have the following
set in the NuttX configuration file or else the performance will be very bad
(because there will be only one character per TCP transfer):

  CONFIG_STDIO_BUFFER_SIZE   Some value >= 64
  CONFIG_STDIO_LINEBUFFER=y  Since Telnetd is line oriented, line buffering
                             is optimal.

Tips for Using DHCPC
^^^^^^^^^^^^^^^^^^^^

If you use DHCPC/D, then some special configuration network options are
required.  These include:

  CONFIG_NET=y               Of course
  CONFIG_NSOCKET_DESCRIPTORS And, of course, you must allocate some
                             socket descriptors.
  CONFIG_NET_UDP=y           UDP support is required for DHCP
                             (as well as various other UDP-related
                             configuration settings).
  CONFIG_NET_BROADCAST=y     UDP broadcast support is needed.
  CONFIG_NET_ETH_MTU=650     The client must be prepared to receive
  (or larger)                DHCP messages of up to 576 bytes (excluding
                             Ethernet, IP, or UDP headers and FCS).
                             NOTE: Note that the actual MTU setting will
                             depend upon the specific link protocol.
                             Here Ethernet is indicated.