Annotation of embedaddon/libnet/doc/TODO, revision 1.1
1.1 ! misho 1: ===============================================================================
! 2: $Id: TODO,v 1.2 2004/01/03 20:31:00 mike Exp $
! 3: LIBNET 1.1 (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
! 4: http://www.packetfactory.net/libnet
! 5: ===============================================================================
! 6:
! 7:
! 8: 1.1.x TODO LIST
! 9:
! 10: * Update the man page!
! 11:
! 12: - Add a programmer's man page detailing the pblock architecture.
! 13:
! 14: - Fix plist memory leak.
! 15:
! 16: - Fix IPv6. According to RFC 2992:
! 17: "Another difference from IPv4 raw sockets is that complete packets
! 18: (that is, IPv6 packets with extension headers) cannot be read or
! 19: written using the IPv6 raw sockets API. Instead, ancillary data
! 20: objects are used to transfer the extension headers, as described
! 21: later in this document. Should an application need access to the
! 22: complete IPv6 packet, some other technique, such as the datalink
! 23: interfaces BPF or DLPI, must be used.
! 24:
! 25: All fields in the IPv6 header that an application might want to
! 26: change (i.e., everything other than the version number) can be
! 27: modified using ancillary data and/or socket options by the
! 28: application for output. All fields in a received IPv6 header (other
! 29: than the version number and Next Header fields) and all extension
! 30: headers are also made available to the application as ancillary data
! 31: on input. Hence there is no need for a socket option similar to the
! 32: IPv4 IP_HDRINCL socket option."
! 33:
! 34: - Add self-throttling logic to libnet_write()/libnet_init()? Advanced
! 35: mode thing?
! 36:
! 37: - Prune the include list in libnet.h.in. Also add conditionals
! 38: around the headers we use for building the library, but not when
! 39: using it.
! 40:
! 41: - Data marshalling API for unaligned structures (like STP).
! 42:
! 43: - Make cisco ISL work. The issue is that we have build our Ethernet
! 44: frame first, then encapsulate it inside of an ISL envelope.
! 45: - We have to compute CRCs for both Ethernet and ISL.
! 46:
! 47: - Tune advanced interface functionality that allow the application
! 48: programmer to get inside libnet_t.
! 49:
! 50: - Test HPUX 11 port.
! 51:
! 52: - Test cywin32 port.
! 53:
! 54: - Flesh out the advanced mode.
! 55:
! 56: - Consider making a flag for "strict mode" where libnet will check
! 57: things like when you build an IP options list there is an IP
! 58: header preceding it (likewise for TCP)... Other "smart" things
! 59: could happen in this mode too. When in non-strict mode, libnet
! 60: will be less rigid but prone to user-error mode.
! 61:
! 62: - If we have a problem building a header we might end up freeing it
! 63: creating a NULL entry on the list and preventing us from getting to
! 64: entries beyond it (to free or whatever). Maybe we should mark it
! 65: bad or something and rely on the cleanup at the end to free it up?
! 66:
! 67: - Fix checksum support for CDP
! 68:
! 69: - Verify Checksuming:
! 70: Currently verified working on OpenBSD/Linux/Solaris:
! 71: - raw IP/UDP [with and without data]
! 72: - raw IP/TCP [with and without data]
! 73: - raw IP/ICMP [with and without data]
! 74: - raw IP/OSPF
! 75: - hello packet [with no auth data]
! 76: - hello packet [with no auth data and LSA sub-header (LSA check = bad)]
! 77: - link IP/UDP [with and without data]
! 78: - link IP/TCP [with and without data]
! 79:
! 80: - Update the rest of the libnet_link_* files for the new format, already
! 81: ported:
! 82: - bpf [works]
! 83: - linux packet socket [works]
! 84: - linux sock packet [works]
! 85: - dlpi [works]
! 86:
! 87: - Port link stuff to use writev() in libnet_write() (sendto can't hang).
! 88:
! 89: - Get IPsec code working.
! 90:
! 91: - Add the following packet builders:
! 92: - SNMP
! 93:
! 94: - Update __libnet_handle_dump to dump everything in l verbosely.
! 95:
! 96: EOF
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>