260 likes | 408 Views
Software Frame Simulator (SFS). Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom. Uri Ferri & Ynon Cohen January 2007. AGENDA. Background and Motivation. High cost of network testing and simulation hardware
E N D
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007
Background and Motivation • High cost of network testing and simulation hardware • Low availability of hardware-based testing equipment • Software-based simulators are more agile and therefore easier to configure and extend.
Product Overview SFS simulates networking hardware for testing purposes: • Lower cost of testing equipment • Support various protocols, network topologies and testing scenarios in a single user friendly tool • Provide infrastructure for future extensions, such as additional protocols and testing behaviors
Features – packet generation Send frames of various protocols: • Currently supported protocols include: Ethernet IP Arp Udp Tcp Igmp V2&V3 • Complete control over packet content using xml import/export • Support packet customization storage and reuse • Includes library of default packets for cases in which packet contents are insignificant • Support for default packet customization
Features – versatile behaviors • Compose complex behaviors using simple atomic behaviors: • Send Message • Listen for Message • Wait • Example:
Features – versatile behaviors • Composing operations: • Concatenation • Multiplication • Example:
Features – versatile behaviors • Arbitrary compositions: • Free usage of atoms and customized composite behaviors • Save complex pre-defined compositions for future use as parts of even more complex behaviors. • Example:
Features – end point simulation • Simulate endpoints such as computers, set top boxes, servers etc. • Each simulated machine has its own properties and behaviors: • Ethernet and IP address • Configured agent to perform specific behavior • Runs as an independent resource (thread) on the test machine itself
Features – end point simulation Definition and usage of a sequence of similar (but not identical) endpoints - as simple as using a single endpoint. • May be used to simulate a network of client computers, or set top boxes. • Infrastructure also supports mixed endpoint sequences for use in future extensions.
Features – configuration • Complete control over the main simulation entities: • Packets of all supported protocols • Composite behaviors • End points and end point sequences • External configuration through use of xml documents: • Every entity has a well defined configuration file. • Support for three types of compositions : • Inline : for ease of use. • Reference: for extensibility and reuse of definitions. • Default: to shorten definition, when specific details are less important.
Deployment • External independent testing software tool. • A single executable file, which includes a command line interface, may be installed on any PC with a network card. • Command line enables single line, easy to use, stateless instructions. • Simple xcopy installation • Possible use: • Simulator for massive networks with multiple end users, routers and servers. • Specifically, simulate a full IPTV infrastructure for DSLAM testing • Embedded in an existing application • Controller API is exposed for use by the programmer. • Possible use: • Stub for unit testing without use of hardware.
Technology - overview • Project involved refactoring and expanding of an existing tool into a versatile testing infrastructure. • Most of the original code was refactored. Only few of the original communication services remain. • Support for IGMP V3 protocol was added. • Adopted Standards: • Object Oriented design and implementation • Use of design patterns • Utilization of industry standard STL as source for data containers, and other open-source libraries for services such as XML parsing.
Technology - design • Object Oriented Design: • Full class hierarchy for packet protocols and behaviors. • Implementation in C++.
Technology – design • Design Patterns: • Factory design pattern: • Templated factories are utilized for creation of packets, Behaviors, and Endpoints. • Required design and implementation of class metadata and reflection, not internally supported by c++. • Composite design pattern: • Used to allow generic, complex Behaviors. • More atoms and composition rules may easily be added programmatically, in order to further enhance this feature.