Package SSF.Net

Core SSFNet classes for modeling and simulation of network elements (hosts, routers, network interfaces, links) and configuration of arbitrarily complex network topologies.

See:
          Description

Interface Summary
FIBChangeListener Interface implemented by ProtocolSessions (and anyone else) who wish to be notified about changes to the FIB when they occur.
linkLayer Link layer interface -- determines link-layer routing semantics for packets written on any attached interface of the associated link.
packetQueue Generic interface for all classes implementing DML-configurable IP packet queues.
PacketQueueMonitor Generic interface for all classes implementing DML-configurable IP packet queue Monitors.
RouteTieBreaker Interface for a tiebreaker class that can pick a 'best route' when there are multiple same-cost routes for the same destination.
RoutingTable This is the generic interface for a routing table.
 

Class Summary
droptailQueue A simple FIFO packet queue.
droptailQueueMonitor_1 A prototype queue monitor built atop the SSF.Util.Streams infrastructure, provided as a demonstration.
droptailQueueMonitor_2 A prototype queue monitor built atop the SSF.Util.Streams infrastructure, provided as a demonstration.
droptailRecordPlayer_1 Standalone class to translate Streams containing QueueRecord:s generated by droptailQueueMonitor_1 into ASCII format for viewing.
droptailRecordPlayer_2 Standalone class to translate Streams containing QueueRecord:s generated by droptailQueueMonitor_2 into ASCII format for viewing.
Host Network Host: a machine with one or more network interface cards (NICs) through which it interoperates with the world.
lanLinkLayer Implementation of a link layer that performs simple layer 2 routing among a set of two or more attached interfaces.
link Class configuring a level 2 link depending on the number of attached interfaces: if 2 interfaces are attached it will create an instance of SSF.Net.ptpLinkLayer; if 3 or more interfaces are attached it will create an instance of SSF.Net.lanLinkLayer.
Net Top-level modeling class for a network simulation.
NIC Network Interface Card.
nicDecoder  
ptpLinkLayer Class implementing the special case of a link layer with exactly two attached interfaces: a point-to-point link.
RadixTreeRoutingTable This class implements a radix-tree routing table.
Router Router: a network host with multiple network interface cards (NICs).
RoutingInfo Forwarding data stored in a node in a RoutingTable.
RoutingInfoIC Forwarding data stored in a node in a RoutingTable (in core).
RoutingInfoOOC Forwarding data stored in a node in a RoutingTable (out of core).
 

Package SSF.Net Description

Core SSFNet classes for modeling and simulation of network elements (hosts, routers, network interfaces, links) and configuration of arbitrarily complex network topologies.

The principal network elements modeled by package SSF.Net are:

  1. Net
  2. Host and Router
  3. NIC
  4. link

Class Net loads all the model's DML configuration files and controls the orderly instantiation of the entire model: hosts and routers with their protocols, networks connecting hosts and routers, as well as the placement of monitoring infrastructure, scheduling of traffic scenarios, and multiple random number streams. The DML model configuration is hierarchical, and allows recursive composition of larger networks from pre-configured sub-networks.

Class Net also controls the automatic assignment of IP addresses to all networks and interfaces in a model, following the CIDR guidelines.

Class Host (actually derived from SSF.OS.ProtocolGraph) is fully configurable and can support any graph of network protocols. Minimally, this must include IP (which provides packet forwarding) and at least one NIC. A Router is a special case of a Host with multiple NICs, and possibly a specialized protocol graph.

Class NIC (Network Interface Card) derived from ProtocolSession is a bottom-level pseudo-protocol that maintains a pair of buffered SSF in/outChannels to the world outside the protocol graph. NIC has various configuration options for physical link characteristics, packet queueing and scheduling, that may be configured from a matching DML description.

The interface packetQueue establishes a common framework for the implementation of various packet queue models.

The interface packetQueueMonitor provides a common framework for runtime monitoring of the dynamics of queues in a model.

Class link models link-layer connectivity among a set of attached interfaces. A link with more than two attached interfaces performs collision-free level-2 switching of IP packets sent on any attached interface.

The package SSF.Net also provides classes implementing the IP forwarding tables.