Commit graph

170 commits

Author SHA1 Message Date
apwiggins
14db4eb383
added reset interfaces at FRR startup
adds an interface down and up for all interfaces except lo; assists babel in particular
2020-01-20 11:17:45 -04:00
Blake Harnden
b8ded52a66 fixed formatting in docs due 2020-01-16 16:12:01 -08:00
Blake Harnden
f4ddf310a8 removed rtype and param typing from doc strings to help avoid maintaining duplicate information provided by type hints 2020-01-16 11:00:57 -08:00
bharnden
4d82d1412c fix check for frr babel wireless config 2020-01-15 21:40:16 -08:00
Blake Harnden
49f09a25cc added type hinting to core.services, avoiding all the various services for now 2020-01-14 15:26:19 -08:00
Blake Harnden
9aafc8e44f updates to zebra service to remove deprecated configurations 2020-01-09 15:34:54 -08:00
Blake Harnden
834ceea55d updates to sdn ovs service to use ip instead of deprecated ifconfig 2020-01-09 13:52:36 -08:00
Blake Harnden
fd10663323 changes to replaces known usages of ipaddress, leaving only ipaddress.MacAddress 2020-01-08 13:25:00 -08:00
Blake Harnden
f431254e15 initial changes towards removing ipaddress and using netaddr 2020-01-07 14:08:29 -08:00
Blake Harnden
6d68034177 updated start proto to return exception strings, updated grpc start session to exist early when a failure is found, updated coretk ui to not switch ui to running when start fails and display error dialog 2019-12-20 15:11:34 -08:00
Blake Harnden
513eaf2b76 improved coretk gui alerts to display alert text when selected, fixed merged code for adding a check to cleanup interfaces, updated session.exceptions to use enums directly 2019-12-20 10:51:52 -08:00
Blake Harnden
85521e8c8f added grpc to get current service configurations, fixed bug for core daemon not using custom service configs 2019-12-13 18:17:42 -08:00
Blake Harnden
b993fadedb removed grpc check for getting a node service file, it will return the default value when not currently set 2019-12-13 11:24:35 -08:00
Blake Harnden
45a23a6c14 updated usage of time.time to time.monotonic or time.perf_counter due to time.time possibly rolling backwards 2019-12-06 09:42:41 -08:00
bharnden
52c6f2f31c fixed issue with services identifying ip4/ip6 addresses 2019-11-22 14:52:46 -08:00
bharnden
4e03dc6888 updates to grpc StartSession, added utility threadpool function to help improve speed when running certain tasks, made use of utility threadpool function where needed 2019-10-29 10:25:39 -07:00
bharnden
6a0a9e7698 updated all classes to be created without using (object), in python3 all classes are new style classes 2019-10-23 09:31:34 -07:00
Blake Harnden
78f981463d renamed utils.check_cmd to utils.cmd, updated host_cmd to allow for shell commands for output redirection 2019-10-21 10:32:42 -07:00
bharnden
6006710c32 changed net_cmd to host_cmd and node_net_cmd to cmd, for simpler more logical naming 2019-10-18 23:28:09 -07:00
Blake Harnden
79cde8cd59 further f string updates 2019-10-17 19:25:52 -07:00
Blake Harnden
6edd6a7fdb first pass at removing all python2 specific dependencies, updating python requirements.txt/setup.py/Pipfiles/Makefiles, and removing python2 compat imports 2019-10-17 14:52:31 -07:00
Blake Harnden
02ef91242e initial changes to convert all commands to be string based for consistency 2019-10-11 16:36:57 -07:00
Blake Harnden
d326f246a7 removed node based check_cmd, updated to use appropriate function 2019-10-11 12:57:37 -07:00
Blake Harnden
4a6d69bb09 removing cmd_output function from utils and nodes 2019-10-11 09:34:49 -07:00
Blake Harnden
f6cdeb23de changes to update commands to leverage either node_net_cmd/net_cmd 2019-10-10 15:25:12 -07:00
Blake Harnden
bc58693339 updated emane config files to be generated for remote servers, fixed services not using node remote server compatible commands 2019-10-10 11:53:52 -07:00
bharnden
70bb1598e1 fixed some nrl services for python3, using len(filter) 2019-10-03 13:49:26 -07:00
Blake Harnden
d6cf09e4b8 updated service loading to catch on_load exceptions and ignore service 2019-09-30 09:33:17 -07:00
bharnden
503fa754a9 updates to fail early for required executables that are not in PATH 2019-09-27 23:29:15 -07:00
bharnden
050297587d consolidated EmaneNode and EmaneNet, renaming EmaneNode to EmaneNet 2019-09-27 22:31:56 -07:00
bharnden
b14012e5e9 removed node map file and utilities, added formal class methods to session objects and added checks for specific classes where needed 2019-09-26 13:00:12 -07:00
Blake Harnden
c0ce07404f moved service validation to debug, to limit error messages causing confusion about failures 2019-09-13 13:26:30 -07:00
bharnden
0d5692e7e8 updates to try and clean up info logging, moved some statements to debug 2019-09-11 15:05:05 -07:00
bharnden
3776e1dda7 moved emane dependent tests into subdir, moved pytest config into setup.cfg, added CoreError and made use of in session.py 2019-09-11 13:12:42 -07:00
bharnden
dee91e97bf changes to fix flake8 issues 2019-09-10 21:01:51 -07:00
bharnden
1fc8d647c3 added flake8/black, pre-commit integration for flake8/black, and black formatting changes 2019-09-10 15:10:24 -07:00
bharnden
d5055f85d3 pass over files using isort 2019-09-10 14:20:51 -07:00
Blake Harnden
2cd0f381ea updated ovs service to use fail mode secure 2019-07-19 11:35:01 -07:00
Blake Harnden
ccf5a5de60 updates to ryu service to run in a more general way avoiding the need for specific pathing and local installs 2019-07-18 08:19:51 -07:00
Blake Harnden
db7bfe12bd pass on updated pydocs to reflect path changes 2019-06-07 08:59:16 -07:00
Blake Harnden
597bd21994 updated logging.warn to logging.warning due to deprecation in python3, fixed python 2/3 filter issue in tests, fixed utf decoding for some missed popen commands 2019-06-03 14:36:21 -07:00
bharnden
1e98175e35 refactored usages of iteritems, itervalues, and iterkeys to be 2/3 compliant 2019-05-05 21:23:43 -07:00
bharnden
8d6bf54a16 removed usage of longs, updated int instance checking and octal constants to be 2/3 compliant 2019-05-05 17:11:07 -07:00
bharnden
66e603906a updates to layout core module packages in a more logical way, including renaming methods from objects to nodes and nodes.objid to nodes.id 2019-04-29 23:31:47 -07:00
bharnden
9517740704 initial refactor for all variables named objid 2019-04-26 22:07:51 -07:00
apwiggins
46e58ff187
Update frr.py 2019-04-10 16:17:44 -03:00
apwiggins
840a27632d
Update frr.py to use pimd 2019-04-10 09:23:11 -03:00
apwiggins
a3c3d0c18d
Add FRR service file 2019-04-09 18:07:00 -03:00
bharnden
7aee2b2ba7 updated logging usage, to use the library directly and avoid imposing a core config by default, allowing users of the core library to configure logging as desired 2019-02-16 09:50:19 -08:00
bharnden
03d0e90db5
Merge pull request #198 from coreemu/bugfix/reduce-default-core-daemon-logging
quiet core-daemon by replacing warn messages with debug
2018-11-14 15:26:50 -08:00
bharnden
a7bc7500fb
Merge branch 'master' into cleanup/codacy-cleanup 2018-10-18 16:21:05 -07:00
bharnden
f5da989eca
Merge pull request #203 from coreemu/bugfix/fix-dhcp-service-under-ubuntu1804
fix DHCP server service to work under Ubuntu 18.04
2018-10-16 11:26:31 -07:00
Jeff Ahrenholz
8f8ca04562 codacy: fix trailing whitespace 2018-10-16 10:15:04 -07:00
bharnden
12cc40d3d3 cleaned up core.emane, core.services, core.xml, fixed bug introduced in coreobj.py 2018-10-11 17:26:34 -07:00
bharnden
ca107a3207 #199 small tweaks to be consistent with rest of code 2018-10-10 14:49:51 -07:00
Jeff Ahrenholz
853ae94d52 fix DHCP server service to work under Ubuntu 18.04 2018-10-10 10:11:32 -07:00
Jeff Ahrenholz
9399218123 enable OSPFv2 fast convergence, and fix router-id for IPv6-only nodes 2018-10-10 09:58:18 -07:00
Jeff Ahrenholz
366f63fb96 add a source NAT service using iptables masquerade 2018-10-09 15:19:14 -07:00
Jeff Ahrenholz
18d4908bf8 quiet core-daemon by replacing warn messages with debug 2018-10-09 10:13:12 -07:00
Andreas Martens
7dedaa0344 add comments to the OVS service 2018-07-30 15:12:08 +01:00
Blake J. Harnden
3d59a68299 refactored how getters for configurations worked, to avoid setting defaults and causing undesireable states 2018-07-11 21:34:21 -07:00
Blake J. Harnden
bfbee35a53 updates to support external transport configuration and an emane transport service to generate and run emanetransport for a configured external transport model 2018-07-11 09:19:06 -07:00
Blake J. Harnden
bb533406a6 refactored service methods to be shorter, updated some logging to debug, added some more service tests 2018-06-22 15:47:02 -07:00
Blake J. Harnden
37517c45f4 changed some logging from info to debug, removed startindex and depends from services 2018-06-22 08:16:59 -07:00
Blake J. Harnden
0aca9d7809 changes to remove the need to pass services separately, when the node has access to them directly, also made a couple CoreServices methods more consistent to have the node as first param and service second 2018-06-21 14:56:30 -07:00
Blake J. Harnden
b868454b5e updates to use dependency based startup logic 2018-06-21 11:20:08 -07:00
Blake J. Harnden
ed4e6f0f00 removed startup service 2018-06-20 13:07:43 -07:00
Blake J. Harnden
37ce407460 added logic to help provide dependent service ordering 2018-06-19 18:36:53 -07:00
Blake J. Harnden
bf47e5fc0d added service executable check, added error message to gui for service load errors 2018-06-19 09:19:49 -07:00
Blake J. Harnden
e80736061f refactored service interaction use names with a _, and cleanup up some of the CoreServices methods 2018-06-15 14:03:27 -07:00
Blake J. Harnden
eb415aa4d4 merged session config/options together 2018-06-12 08:37:39 -07:00
Blake J. Harnden
c65baa9298 update to add a way to avoid loading parent service classes, that inherit from CoreService that should not be loaded on their own 2018-04-20 21:40:55 -07:00
Blake J. Harnden
64f501ac79 fixed issue with configuring a couple nrl services, fixed other issues with coresendmsg 2018-03-26 14:36:43 -07:00
Blake J. Harnden
bc1e3e70c9 initial pass at removing bsd and code related to using bsd nodes 2018-03-07 12:54:19 -08:00
Blake J. Harnden
974559843a defined custom core command error that defaults to printing command output as well 2018-03-02 16:22:20 -08:00
Blake J. Harnden
00b3c97448 further removal and refactoring of methods used within misc/utils.py 2018-03-02 09:15:52 -08:00
Blake J. Harnden
d3bd61ddcf updates to consolidate commands that need to be defined by a new node type 2018-03-01 13:21:25 -08:00
Blake J. Harnden
f3863ead73 removed service load methids, since they are no longer used, added way for custom service load code to facilitate the unique docker service case 2017-08-07 16:40:39 -07:00
Blake J. Harnden
e4b280196b switched to making use of logzero for logging, provides nicer color output, and an easier path to switch to rotating log files 2017-08-07 11:58:51 -07:00
Blake J. Harnden
850cc599c8 refactored how services are loaded to be more dynamic 2017-08-03 16:33:54 -07:00
Blake J. Harnden
05ce19b0c0 fixed refactoring issues in mobility.py, fixed issue with parsing config files in a tuple string format 2017-08-02 14:07:56 -07:00
Blake J. Harnden
dced47b588 fixed emane version checks, fixed emane config message handling, added initial emane test cases 2017-07-10 09:25:33 -07:00
Blake J. Harnden
613e550e8a merged latest code from rodolfos merge from the latest github pull 2017-07-06 15:10:50 -07:00
Blake J. Harnden
6bfa81f3a8 small cleanup to sdn services, added loadservice line to daemon, and updated example service for how current services are coded 2017-07-05 13:32:16 -07:00
Rod A Santiago
55a6e2dcef merged cleanup branch with master 2017-06-19 18:09:28 -07:00
cspiker
192b362ae6 cleaned up SDN services for release 2017-06-08 13:19:06 -07:00
cspiker
a1007e2391 Updated service files to support new format 2017-06-08 12:30:43 -07:00
cspiker
46baca85d9 Add OVS and Ryu Services to CORE for SDN support 2017-06-08 08:31:50 -07:00
cspiker
b37d1d52fa added new OVS service file 2017-06-07 12:41:52 -07:00
Blake J. Harnden
00f4ebf5a9 initial commit after bringing over cleaned up code and testing some examples 2017-04-25 08:45:34 -07:00
Jeff Ahrenholz
0b0557e008 fix /var/run/quagga permissions for Ubuntu 16.04 2017-03-31 10:59:58 -07:00
Gabriel Somlo
b1ea0574e5 daemon: start Quagga with default user/group names
Allow native distribution packages to run with their default user
and group names by no longer forcing "-u root -g root" on any of
the Quagga daemons' command lines.

This should continue to allow hand-compiled and/or "side-loaded"
Quagga software to run as root, if configured to do so at build
time.

Signed-off-by: Gabriel Somlo <glsomlo@cert.org>
2017-02-02 11:25:53 -05:00
Gabriel Somlo
33906aae9f daemon: remove Quagga 'vtysh' service
Since all Quagga daemons are configured from a consolidated
location (the 'zebra' service), there is nothing left to do
for a dedicated service such as 'vtysh'. This patch removes
the service, along with all references to it from the rest
of the source tree (sample *.imn files, examples, etc.)

Signed-off-by: Gabriel Somlo <glsomlo@cert.org>
2017-02-01 09:55:58 -05:00
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
928617e613 Merged new versions from NRL 2016-09-14 17:12:25 -07: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
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
1787d9e42c services: Add a terminating newline. 2016-01-06 13:42:17 -05:00