The Assimilation Project
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Modules
Here is a list of all modules:
[detail level 1234]
 Layout of ARP PacketsARP is the Address Resolution Protocol - which we receive and then map IP to MAC addresses
 ARP: Offsets of initial items in an ARP packet.The initial items are the hardware and protocol types, address lengths, and the operation code
 Layout of CDP PacketsCDP is the Cisco Discovery Protocol - which we receive and interpret, but don't send
 CDP: Offsets of initial non-TLV items in a CDP packet.The initial items are a checksum, protocol version, and the time to live of the packet
 CDP: Sizes of the type and length portion of a CDP TLV entry.Offsets of things that occur at the beginning of each TLV entry
 CDP: Known values for TLV types
 CDP: Capability (CDP_TLV_CAPS) mask bits.The TLV type CDP_TLV_CAPS value is a field with a set of bits defining the capabilities which a given switch or router might implement
 'FrameSet' data format on the wireAs noted earlier, FrameSets are logical packets
 Generic TLV capabilitiesImplements a set of client-oriented TLV (Type, Length, Value) capabilities
 Layout of LLDP packetsThe Link Layer Discovery Protocol is a layer two discovery protocol which we receive and interpret, but do not send
 LLDP: offsets for LLDP packets
 LLDP: Known values for TLV types.
 LLDP: Methods of encoding Chassis ID.
 LLDP: Methods of encoding Port ID.
 LLDP: bit mask of switch capabilities.
 LLDP: IEEE 802.1 Organizationally specific TLV subtypes.802.1 Organizationally Specific TLVs – OUI == 00-80-C2
 LLDP: IEEE 802.3 Organizationally specific TLV subtypes.802.3 Organizationally Specific TLVs – OUI == 00-12-0F
 Nanoprobe implementation functionsA collection of useful functions for implementing nanoprobes - sans main program
 C-Classes
 AssimObj classImplements the base object class for our object system
 ChildProcess class.Class for creating and monitoring child processes in the gmainloop environment
 ConfigContext classA base class for remembering configuration values of various types in a hash table with capabilities to go to and from JSON
 ResourceCmd classClass implementing resource commands
 ResourceLSB classClass implementing resource commands
 ResourceOCF classClass implementing resource commands
 CompressFrame classClass implementing Compression/decompression on the wire
 ConfigContext classA base class for remembering configuration values of various types in a hash table with capabilities to go to and from JSON
 Discovery classDiscovery abstract base class - supporting the discovery of various local things by our subclasses
 ArpDiscovery classClass providing an ARP Discovery class for discovering IP/MAC address resolution - subclass of Discovery class
 JSON discovery class.JSONDiscovery class - supporting the discovery of various things through scripts that produce JSON output to stdout
 SwitchDiscovery classClass providing a switch discovery class for discovering network switch properties - subclass of Discovery class
 Frame classClass for holding/storing binary blobs - Base class for all the other Frame types
 AddrFrame classClass for holding/storing various kinds of NetAddr class network addresses
 CompressFrame classClass implementing Compression/decompression on the wire
 CryptFrame classClass for encrypting FrameSets
 CryptCurve25519 classClass for encrypting FrameSets
 CstringFrame classClass for holding/storing C-style null-terminated strings - Subclass of Frame class
 IntFrame classClass representing various length of integers - subclass of Frame class
 IpPortFrame classClass for holding/storing various kinds of NetAddr class network addresses
 NVpairFrame classClass for holding/storing pairs of strings as name/value pairs Subclass of Frame class
 SeqnoFrame classClass representing packet "sequence numbers" - subclass of Frame class
 SignFrame classClass representing digital signatures - subclass of Frame class
 UnknownFrame classClass representing an unrecogized or unknown type of frame in a packet - subclass of Frame class
 FrameSet classClass representing a collection of Frames to be sent in a single datagram
 FsProtocol class
 FsQueue class
 GmainFd class.(base) Class for reading from file descriptors (usually pipes) from gmainloop programs
 LogSourceFd class.Class for logging the content of file descriptors in the glib gmainloop world
 HbSender class.Class for heartbeat Senders - We send heartbeats to the chosen few
 Listener class.Base Listener class - Listen for FrameSets
 AuthListener class.Class for listening, authenticating, and obeying packets from the Collective Authority
 HbListener class.Class for heartbeat Listeners - We listen for heartbeats and time out those which are late
 NetAddr classThis is our basic NetAddr object
 NetGSource classThis is our basic NetGSource object
 NetIO class(Abstract) NetIO objects are able to perform network writes and reads
 NetIOudp classA NetIOudp object performs network writes and reads on UDP sockets
 ReliableUDP classA ReliableUDP object implements a protocol to make UDP reliable
 PacketDecoder classA base class for transforming an incoming packet into a GSList of FrameSet class objects
 GSource_Pcap classClass representing a pcap GSource object - for capturing packets in the g_main_loop paradigm
 ResourceCmd classClass implementing resource commands
 ResourceLSB classClass implementing resource commands
 ResourceOCF classClass implementing resource commands
 C-Class Management
 #define enumerations
 IANA Address Family NumbersThis information was taken from http://www.iana.org/assignments/address-family-numbers/address-family-numbers.xhtml as described by RFC 3232
 CDP: Known values for TLV types
 CDP: Capability (CDP_TLV_CAPS) mask bits.The TLV type CDP_TLV_CAPS value is a field with a set of bits defining the capabilities which a given switch or router might implement
 Protocols known to (supported by) create_pcap_listener().These protocols can be ored together to create the complete set of interesting protocols to be passed as the 'listenmask' argument
 Data Types corresponding our various TLV typesEach of the types below has a method associated with it which knows how to convert it to a string
 FrameSet Types
 Individual TLV 'Frame' data types and layouts (by TLV type)Below is the set of individual frame types and data layouts - organized by TLV type
 Project-wide (global) todos
 Staffing - People to look for
 Nearer term TODOs
 Farther out TODOs - things needing research
 FrameFormatsBelow is the set of frame formats and corresponding macro definitions This section will document the format of the individual frame types
 C-Class AddrFrame wire formatHere is the format we use for packaging an AddrFrame class for the wire
 C-Class C-string wire formatHere is the format we use for packaging a NUL-terminated C-style string (CstringFrame class) for the wire
 C-Class IntFrame wire formatHere are the various frame formats that we use for packaging single integers as whole frames
 C-Class IpPortFrame wire format (including port number)Here is the format we use for packaging an IpPortFrame class for the wire
 C-class SeqNoFrame wire formatHere is the wire format we use for sequence numbers
 C-class SignFrame wire formatHere is the wire format we use for digital signatures
 Individual TLV 'Frame' data types and layouts (by TLV type)Below is the set of individual frame types and data layouts - organized by TLV type