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>