This application provides statistics on the satellite connection. It's goal is to observe long-term signal degradation. It consists of two main parts: (a) A daemon which logs information to a database, and (b) a web interface to visually display the gathered statistics. It is intended to work with an Ayecka TC1, from which it logs Es/N0 values as well as the distribution of MODCODs. The TC1 shall be connected to a terminal, intended to monitor the satellite connection. As such, the information is retrieved from incoming traffic. The project has been realized during a summer job at SES S.A. .
Copyright (C) 2015 Laurent Seiler
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- The application has been developed on an Arch-based GNU/Linux system, although it should run on most UNIXes.
- It relies on MongoDB, LibEvent, PHP and NetSNMP. You will need:
- mongodb
- php-mongo
- net-snmp
- libevent
- php
- php-apache
- php-mongo
- apache (or equivalent)
- Additionally, it is highly recommended to run the application in a
Valgrind instance, as the code may still contain bugs. It will not prevent
them, but you can file a nice bug report :)
- valgrind
- The web interface is using Twitter Bootstrap and NVD3 for the graphs. The required sources are already included.
- Install the required dependencies
- In
scm_daemon/:- Set the appropriate IP for the TC1 in
src/common.h, in the line containing#define TC1_IP_ADDR ... - Configure the network segments + frequencies + alarm thresholds in
config.txt. - The script
esno_monitor.shwill be executed if an alarm is raised. Adapt it to your needs and make sure it is executable (chmod +x esno_monitor.sh). - Run the daemon using
./run_scm_monitor.shto run it in a Valgrind session.
- Set the appropriate IP for the TC1 in
- Copy the files in
web_interfaceto a location where Apache can find them, so that they are available athttp://localhost.
- When an alarm is triggered, the
esno_monitor.shscript is triggered with the following parameters:./esno_monitor.sh rx_name ns_name alert_type. The alert type is a bitmask:0x1indicates a failed validity check, i.e. not enough packets have been received for this network segment to make a representative average.0x2indicates that the EsNo average has fallen below the threshold given inconfig.txt. - The MODCOD stats are deactivated by default. You can enable them by setting the
HANDLE_MODCOD_MESSAGESdefine incommon.hto1. A proof-of-concept graph can be seen atlocalhost/modcods.phpthen. Be aware that MODCOD statistics are not separated by the switching NS configurations, i.e. they only provide a global average for all the configurations inconfig.txt
