Seagull is a free, Open Source (GPL) multi-protocol traffic generator test tool. Primarily aimed at IMS protocols, Seagull is a powerful traffic generator for functional, load, endurance, stress and performance/benchmark tests for almost any kind of protocol.In addition, its openness allows to add the support of a brand-new protocol in less than 2 hours - with no programming knowledge. For that, Seagull comes with several protocol families embedded in the source code:
• Binary/TLV (Diameter, Radius and many 3GPP and IETF protocols)
• External library (TCAP, SCTP)
• Text (XCAP, HTTP, H248 ASCII)
Protocols are then implemented on top of those protocol families using user editable XML dictionaries. Those dictionaries describe how messages and parameters are encoded, allowing a great flexibility.
A Seagull scenario - written in XML - describes the messages that are sent and received. It also indicates the behaviour to adopt in case a message is unexpected or a check on a parameter fails.
Reference : http://gull.sourceforge.net/
How to install Seagull for Diameter protocol simulation
In our example, we are installing on a Linux platform.
Step 1 : Download the latest packages/RPM from Seagull website . Example seagull-1.8.2-Linux_RHEL5U2_1.tar.gz
http://gull.sourceforge.net/download/index.html
Step 2 : Install the seagull core package
Untar the tar file to create the list of packages
mkdir /tmp/seagull
cp seagull-1.8.2-Linux_RHEL5U2_1.tar.gz /tmp/seagull
tar -zxvf seagull-1.8.2-Linux_RHEL5U2_1.tar.gz
packages/seagull-h248-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-core-1.8.2-linux-2.6-intel.rpm
packages/seagull-dcc-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-synchro-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-diameter-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-trans-tls-1.8.2-linux-2.6-intel.rpm
packages/seagull-msrp-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-library-java-synchro-1.8.2-linux-2.6-intel.rpm
packages/seagull-sip-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-trans-sctp-1.8.2-linux-2.6-intel.rpm
packages/seagull-mbi-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-binary-body-not-interp-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-radius-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-tcap-ip-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-orga-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-external-lib-sctp-1.8.2-linux-2.6-intel.rpm
packages/seagull-xcap-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-h323-registration-protocol-1.8.2-linux-2.6-intel.rpm
packages/seagull-crypto-1.8.2-linux-2.6-intel.rpm
packages/seagull-octcap-protocol-1.8.2-linux-2.6-intel.rpm
Step 3 : Install first the core module as root user , by default software is installed under /opt/seagull
rpm -ivh packages/seagull-core-1.8.2-linux-2.6-intel.rpm
Step 4 : Install required protocol RPM , for example to install diameter and radius support
rpm -ivh packages/seagull-diameter-protocol-1.8.2-linux-2.6-intel.rpm
rpm -ivh packages/seagull-radius-protocol-1.8.2-linux-2.6-intel.rpm
Post execution of above command, protocol folders get created under /opt/seagull folder.
Understanding Seagull directory structure
Installation of seagull core and required protocol packages, creates specific directories under /opt/seagull. The structure of directories is explained in this section
For example, lets take a directory structure of diameter protocol
• /opt/seagull – Seagull core directory
• /opt/seagull/diameter – Seagull diameter protocol directory
• /opt/seagull/diameter/config – Diameter default and dictionary configuration files
• /opt/seagull/diameter/scenario – Test scenario files
• /opt/seagull/diameter/logs – Log directory to store test run results
• /opt/seagull/diameter/run – Scripts to start seagull module to initiate tests