From 7a21220ebd5cef442fb059c90e18ff90232d8dc9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 6 Nov 2007 19:58:14 +0000 Subject: Verified basic client-side network functionality git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@373 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/TODO | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) (limited to 'nuttx/TODO') diff --git a/nuttx/TODO b/nuttx/TODO index 9a2890417..dddf2ecaa 100644 --- a/nuttx/TODO +++ b/nuttx/TODO @@ -28,38 +28,53 @@ o pthreads o C++ Support - Need to call static constructors -o Network -- Finish integratin of uIP - -o USB -- Implement USB device support -- Implement USB bulk device - -o Libraries -- sscanf() and lib_vsprintf() do not support floating point values. -- The definition of environ in stdlib.h is bogus and will not work as it should. This - is because the underlying representation of the environment is not an arry of pointers. - -o File system -- Add chmod(), truncate(). -- FAT32: long file names - o Network - Did not implement send() and sendto() timeouts. Option is setable via setsockopt, but is not implemented. - netutils/webserver netutils/telnetd (and maybe others) are seriously broken. + Need to be re-written to use listen() and accept() - Should implement SOCK_RAW +- listen() and accept() are untested. +- accept() and recvfrom() need to return connection address - Performance Improvements (uIP is not very fast): - +- Improve performance by queing TX operations Add simple buffer management. CONFIG_NET_BUFFERS (1) On write, queue buffer for output get a new buffer for the socket (waiting if nececcesary (2) Copy buffer structure into uip_driver_structure when driver requests write data +- Improve performance by stimulating the driver to accept new TX data before the + next polling interval. Add a txail callback into driver to eliminate send delays. Since we want to support multiple network devices, this means we will have to add some infrastructure to map to device. +- Break uip_interrupt() (in uip.c) into several functions. +- uIP polling issues: + (1) uIP expects a single driver to poll at a 500ms interval (dm90x0 currently + polls a 5sec). + (2) Current logic will not support multiple ethernet drivers. Each driver should + poll on TCP connections connect on the network supported by the driver; UDP + polling should respond with TX data only if the UDP packet is intended for the + the network supported by the driver. + (3) If there were multiple drivers, polling would occur at double the rate. +- TCP Bug: + When TCP data is received with no read in place, it appears that uIP ACKs the data + even though it was not taken accepted. We must either (1) buffer incoming data, or + (2) not ACK it so that it will be re-sent. + +o USB +- Implement USB device support +- Implement USB bulk device + +o Libraries +- sscanf() and lib_vsprintf() do not support floating point values. +- The definition of environ in stdlib.h is bogus and will not work as it should. This + is because the underlying representation of the environment is not an arry of pointers. + +o File system +- Add chmod(), truncate(). +- FAT32: long file names o Documentation - Document fs/ & driver/ logic -- cgit v1.2.3