diff options
Diffstat (limited to 'doc/TODO')
-rw-r--r-- | doc/TODO | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/doc/TODO b/doc/TODO new file mode 100644 index 0000000..84464d1 --- /dev/null +++ b/doc/TODO @@ -0,0 +1,96 @@ +=============================================================================== + $Id: TODO,v 1.2 2004/01/03 20:31:00 mike Exp $ + LIBNET 1.1 (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com> + http://www.packetfactory.net/libnet +=============================================================================== + + + 1.1.x TODO LIST + + * Update the man page! + + - Add a programmer's man page detailing the pblock architecture. + + - Fix plist memory leak. + + - Fix IPv6. According to RFC 2992: + "Another difference from IPv4 raw sockets is that complete packets + (that is, IPv6 packets with extension headers) cannot be read or + written using the IPv6 raw sockets API. Instead, ancillary data + objects are used to transfer the extension headers, as described + later in this document. Should an application need access to the + complete IPv6 packet, some other technique, such as the datalink + interfaces BPF or DLPI, must be used. + + All fields in the IPv6 header that an application might want to + change (i.e., everything other than the version number) can be + modified using ancillary data and/or socket options by the + application for output. All fields in a received IPv6 header (other + than the version number and Next Header fields) and all extension + headers are also made available to the application as ancillary data + on input. Hence there is no need for a socket option similar to the + IPv4 IP_HDRINCL socket option." + + - Add self-throttling logic to libnet_write()/libnet_init()? Advanced + mode thing? + + - Prune the include list in libnet.h.in. Also add conditionals + around the headers we use for building the library, but not when + using it. + + - Data marshalling API for unaligned structures (like STP). + + - Make cisco ISL work. The issue is that we have build our Ethernet + frame first, then encapsulate it inside of an ISL envelope. + - We have to compute CRCs for both Ethernet and ISL. + + - Tune advanced interface functionality that allow the application + programmer to get inside libnet_t. + + - Test HPUX 11 port. + + - Test cywin32 port. + + - Flesh out the advanced mode. + + - Consider making a flag for "strict mode" where libnet will check + things like when you build an IP options list there is an IP + header preceding it (likewise for TCP)... Other "smart" things + could happen in this mode too. When in non-strict mode, libnet + will be less rigid but prone to user-error mode. + + - If we have a problem building a header we might end up freeing it + creating a NULL entry on the list and preventing us from getting to + entries beyond it (to free or whatever). Maybe we should mark it + bad or something and rely on the cleanup at the end to free it up? + + - Fix checksum support for CDP + + - Verify Checksuming: + Currently verified working on OpenBSD/Linux/Solaris: + - raw IP/UDP [with and without data] + - raw IP/TCP [with and without data] + - raw IP/ICMP [with and without data] + - raw IP/OSPF + - hello packet [with no auth data] + - hello packet [with no auth data and LSA sub-header (LSA check = bad)] + - link IP/UDP [with and without data] + - link IP/TCP [with and without data] + + - Update the rest of the libnet_link_* files for the new format, already + ported: + - bpf [works] + - linux packet socket [works] + - linux sock packet [works] + - dlpi [works] + + - Port link stuff to use writev() in libnet_write() (sendto can't hang). + + - Get IPsec code working. + + - Add the following packet builders: + - SNMP + + - Update __libnet_handle_dump to dump everything in l verbosely. + +EOF |