Software Frame Simulator (SFS)
Embed Size (px)
description
Transcript of Software Frame Simulator (SFS)

-1--1-Software Frame
Simulator (SFS)Technion CS Computer Communications Lab
(236340)in cooperation with ECI telecom
Uri Ferri & Ynon CohenJanuary 2007

-2--2-
AGENDABackground and Motivation
Product overview
Features
Deployment
Technology

-3--3-
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.

-4--4-
Product OverviewSFS 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

-5--5-
Features – packet generation
Send frames of various protocols:• Currently supported protocols include:
Ethernet IP Arp
Igmp V2&V3
TcpUdp
Complete control over packet content using xml import/exportSupport packet customization storage and reuseIncludes library of default packets for cases in which packet contents are insignificant
• Support for default packet customization

-6--6-
Configuring a Packet

-7--7-
Sending the Packet

-8--8-
Features – versatile behaviors
– Compose complex behaviors using simple atomic behaviors:• Send Message• Listen for Message• Wait
– Example:Send
Tcp Msg
Wait 10 secs
ReceiveTcp Msg
Wait 20 secs

-9--9-
Features – versatile behaviors
– Composing operations:• Concatenation• Multiplication
– Example:Repeat
X10
Send Tcp Msg
Wait 10 secs
ReceiveTcp Msg
Wait 20 secs

-10--10-
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: RepeatX10
Activate behavior
A from file A.xml
Wait 10 secs
Activate behavior B

-11--11-
Configuring an Agent using a protocol from a file

-12--12-
Configuring an Agentusing an inlined protocol

-13--13-
Configuring an Agentusing the default protocol

-14--14-
Using the Agent

-15--15-
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

-16--16-
Configuring an EndPoint

-17--17-
Activating the EndPoint

-18--18-
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.

-19--19-
Configuring an EndPoint sequence

-20--20-
Activating the EndPoint sequence

-21--21-
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.

-22--22-
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.

-23--23-
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.
23

-24--24-
Technology - design
• Object Oriented Design:– Full class hierarchy for packet protocols and
behaviors.– Implementation in C++.
24

-25--25-
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. 25

-26--26-
Technology – design example
26