Gabriel Somlo
6609d2c394
daemon: streamline Quagga startup
...
Currently, all Quagga daemons are started concurrently by their
respective CORE services, using "quaggaboot.sh" generated by the
'zebra' service. However, all routing services depend on 'zebra'
already running, and 'vtysh' depends on ALL other Quagga services
before it can push configuration from the common "Quagga.conf" to
all running daemons (see "waitforvtyfiles()" in "quaggaboot.sh").
The spinwait+timeout based implementation of "waitforvtyfiles()"
may, depending on load, give up too early and fail to configure
all Quagga daemons.
This patch streamlines the way Quagga daemons are started, by
launching them all from the 'zebra' service. The correct sequence
is to first launch the 'zebra' daemon itself, then proceed with
all routing daemons, and finish with a call to "vtysh -b" which
configures all running daemons.
The list of all applicable daemons to launch is obtained using
'grep' from Quagga.conf, in the same way "waitforvtyfiles()" used
to discover which *.vty files to look for in /var/run/quagga/.
The startup command for all services other than 'zebra' becomes
empty, and "quaggaboot.sh" issues a warning on attempts to have
it launch any other daemon.
Signed-off-by: Gabriel Somlo <glsomlo@cert.org>
2017-01-12 16:40:45 -05:00
Rod A Santiago
6e610f4309
ensured the shutdown event doesn't get sent until all node delete replies have been sent
2016-12-14 17:24:21 -08:00
Tom Goff
c01d1226c3
daemon: Fix determining when to handle API messages locally.
...
This fixes distributed wired scenarios.
The problem was introduced by commit 42b1771
.
2016-10-19 18:49:34 -04:00
Tom Goff
5ec7e39a28
daemon: Sort EMANE servers so NEM ids are deterministic.
2016-10-12 17:37:40 +00:00
Tom Goff
b1beff1eba
daemon: Wait longer for EMANE network interfaces to exist.
...
When EMANE is still running.
2016-10-12 17:37:27 +00:00
Tom Goff
6d1b5d28a1
daemon: Remove tracking remote node boot status.
...
The instantiation-complete status of remote servers should indicate
when all nodes are running.
2016-10-12 17:37:13 +00:00
Tom Goff
d33147154c
daemon: Add an instantiation-complete CORE API event type.
...
Have CORE servers send an instantiation-complete event after a session
has completed instantiating. Only enter the runtime state after
instantiation-complete events have been received form all servers.
2016-10-12 17:36:59 +00:00
Tom Goff
42b1771dcb
daemon: Create a CoreServer class to represent CORE servers.
...
Includes related changes and refactoring.
2016-10-12 17:36:42 +00:00
Tom Goff
8479ccd2c5
daemon: Use a set to store the broker node map.
2016-10-12 17:36:30 +00:00
Tom Goff
6494605298
daemon: Use a set to store broker physical nodes.
2016-10-12 17:36:16 +00:00
Tom Goff
4662164ece
daemon: Use a set to store broker networks.
2016-10-12 17:35:18 +00:00
Tom Goff
31a9f6fb34
daemon: Use a set to store broker handlers.
2016-10-12 15:55:30 +00:00
Rod A Santiago
2d745c339f
Moved classes CoreRequestHandler, CoreDatagramRequestHandler, CoreServer, CoreUdpServer to a separate core.coreserver module. This will allow future definition of auxiliary request handlers for providing alternative interfaces with CORE.
2016-09-14 18:06:19 -07:00
Rod A Santiago
9913168896
Fixed sendnodeemuid to use the handler's sendall() method instead of BaseRequestHandler's request.sendall(). Added a method to retrieve a configuration item by key.
2016-09-14 18:05:52 -07:00
Tom Goff
c0a9c6c9af
daemon: Remove unused variable.
2016-09-06 10:38:38 -04:00
adamson
f8da9334d8
fix to EMANE TDMA XML generation
2016-09-06 10:16:31 -04:00
Tom Goff
e5e75756ea
daemon: Remove session-related changes introduced by 68532cb
.
2016-09-05 17:12:16 -04:00
Tom Goff
1c91f41742
daemon: Remove unused traceback code introduced by 68532cb
.
2016-09-05 17:09:49 -04:00
adamson
d270da8f41
added daemon/core/emane/tdma.py module to support EMANE 1.0.1 TDMA model
2016-09-05 17:06:31 -04:00
Tom Goff
f03311b50a
daemon: Add support for EMANE 1.0.1.
2016-09-05 17:02:59 -04:00
Rod A Santiago
68532cb818
daemon: added option API TLVs so that per-interface parameters are kept for EMANE models when a single node has multiple interfaces of the same EMANE model type but different model parameters
2016-04-20 08:43:39 -07:00
Rod A Santiago
46cd65c821
daemon: added support to set <address> 'iface' attribute with interface name in XML written by CORE so different interface addresses can be discriminated on <testHost> instances
2016-04-20 08:41:59 -07:00
Rod A Santiago
b91b5125f2
daemon: changes to support optional retainment of per-interface parameters for EMANE models when multiple EMANE models of the same type are used as interfaces for a node
2016-04-20 08:36:58 -07:00
Rod A Santiago
c66914ec21
daemon: added option API TLVs so that per-interface parameters are kept for EMANE models when a single node has multiple interfaces of the same EMANE model type but different model parameters
2016-04-20 08:33:58 -07:00
Rod A Santiago
5895ba2d20
fixed issue with wlan objects from previous sessions lingering in EbtablesQueue and causing the daemon to hang.
2016-04-19 14:10:03 -07:00
Tom Goff
76bf200f41
daemon: Explicitly close EMANE event service files.
2016-03-04 16:57:56 -05:00
Tom Goff
d681534b17
daemon: Minor code reorganization.
2016-03-04 16:57:46 -05:00
Tom Goff
6f77086540
daemon: Remove __del__() methods.
...
This simplifies Python garbage collection.
2016-03-04 16:57:29 -05:00
Tom Goff
ef85995cc6
daemon: Explicitly close vnode clients at shutdown.
2016-03-04 16:57:17 -05:00
Tom Goff
d4d2f36481
daemon: Fix typo.
2016-02-18 17:23:10 -05:00
Tom Goff
85a3eee5b7
daemon: Have the xpimd service enable IGMP by default.
2016-02-18 15:35:17 -05:00
Tom Goff
360de10e1e
daemon: Add IPv4 multicast routing using xpimd as a Quagga service.
2016-02-17 13:33:19 -05:00
Tom Goff
d21de76dfa
daemon: Save NEM information in the session directory during EMANE startup.
...
Write NEM information formatted as:
<node hostname> <network interface name> <NEM ID>
to /tmp/pycore.XXXXX/emane_nems as part of starting EMANE.
This happens before the runtime state is entered and is then available
to node services.
2016-02-09 16:57:05 -05:00
Tom Goff
6dbec302e3
daemon: Use /dev/null for stdin when running state hooks.
2016-01-29 18:47:12 -05:00
Tom Goff
23f7995eab
daemon: Make EMANE event service file descriptors close-on-exec.
2016-01-29 18:43:54 -05:00
Tom Goff
104d05a4be
daemon: Minor code reorganization.
2016-01-29 18:22:08 -05:00
Tom Goff
0333c74bec
daemon: Used the communicate() method to interact with subprocesses.
2016-01-29 16:56:49 -05:00
Tom Goff
6fb1eb9bd6
daemon: Log output from state hooks to a file.
...
Also close other file descriptors when running state hooks.
2016-01-29 16:18:39 -05:00
Rod A Santiago
e8cf15fb64
assigned specific xml element types to network nested devices (switches and hubs) instead of the generic 'host' type
2016-01-28 15:37:52 -08:00
Tom Goff
1787d9e42c
services: Add a terminating newline.
2016-01-06 13:42:17 -05:00
Tom Goff
9440a16ef2
daemon: Add support for EMANE 0.9.3.
2015-12-18 17:12:26 -05:00
Tom Goff
ce0bfc88eb
daemon: Improve handling node-specific directory names.
2015-11-23 09:51:07 -05:00
Tom Goff
adbbafcc11
services: Set 'default' sysctl interface settings in addition to 'all'.
2015-11-12 18:22:41 -05:00
Tom Goff
28c27d27c1
daemon: Simplify event loop timer processing.
2015-11-05 12:37:48 -05:00
Tom Goff
c8d5ec994a
daemon: Include stack trace information when an exception occurs in a
...
session state hook.
2015-11-04 19:06:33 -05:00
Tom Goff
fc9a7c5759
daemon: Fix adding events to an event loop that already has an event
...
pending.
2015-11-04 19:02:21 -05:00
Tom Goff
f16f11c272
daemon: Check if devices are found when generating deployed scenario XML.
2015-10-13 11:07:15 -04:00
Tom Goff
ec5635c4a4
daemon: Add EMANE 0.9.1 R2RI configuration items.
2015-10-09 17:18:18 -04:00
weston
412f86ff15
removed specification of path for executable
2015-10-09 15:54:52 -04:00
weston
0b94aab4ae
removed specification of default mgenBasicActor port (to allow default to be changed by mgenBasicActor)
2015-10-09 15:54:28 -04:00