Package SSF.OS

Core SSFNet classes for modeling and simulation of network protocols, protocol messages, and operating system components.


Interface Summary
Continuation Callback interface used to implement classes that model blocking system calls.
ProtocolMonitor Minimalistic interface for protocol session monitors.

Class Summary
binaryTcpDump Write to the named OutputStream the log of packets crossing the NIC in the binary tcpdump format.
DumpPro A standalone class that translates binaryTcpDump files into ASCII format.
ICMP This class implements a subset of the ICMP protocol.
ICMPHeader ICMP packet Header class.
IP This class implements a subset of the IP protocol.
IpHeader IP packet Header class.
ObjectPool Generic base class for pools of objects.
PacketEvent Wrapper class to turn a ProtocolMessage into an Event that can be sent on an SSF channel.
ProbeSession Class facilitating the use of the package SSF.Util.Streams.
ProtocolGraph Protocol graph class providing some simple initialization and management functions for instances of class SSF.OS.ProtocolSession.
ProtocolMessage A ProtocolMessage is the base class for representing a packet header and payload specific to a single protocol.
Protocols Static (global) information about supported protocol names and numbers.
ProtocolSession Base class for Protocol implementations.
Resource This class provides the first-come, first serve queue for a shared resource.
tcpDump Superclass of SSF.OS.binaryTcpDump retained for backward compatibility.
Timer Efficient timers for SSF simulations.

Exception Summary

Package SSF.OS Description

Core SSFNet classes for modeling and simulation of network protocols, protocol messages, and operating system components.

The principal classes of package SSF.OS are:

  1. ProtocolGraph
  2. ProtocolSession
  3. ProtocolMessage and PacketEvent

This architecture makes it simple to add a new protocol without any changes to the framework, provided its main class is derived from ProtocolSession, and (if desired) comes with a private DML configuration that extends the base ProtocolSession's DML schema. Importantly, on shared memory machines SSF.OS provides significant performance optimizations by implementing zero-copy message processing and protocol method call chaining.

These classes allow to create an abstract protocol graph and install in it any combination of protocols (in a generalized sense, including not only IP, TCP, BGP, etc., but also network device drivers, and client/server applications). The idea of SSF.OS has been originally inspired by the x-kernel, but the design of SSF.OS is simpler, and it differs from the x-kernel in many ways.

Internet protocol models are packages built atop SSF.OS, such as SSF.OS.IP, SSF.OS.TCP, SSF.OS.OSPF, etc., and their variants. ProtocolGraph provides methods for establishing proper dependence relations among the installed protocols. Each Internet protocol package SSF.OS.* in the SSFNet distribution has a test subdirectory with usage examples, and a suite of validation tests (TCP validation has its own SSF.OS.TCP website).