blob: 10fb84b2fa6011433be9abdd72a388ff0d968f51 [file] [log] [blame]
Steve McIntyre31f35282014-12-12 22:12:33 +00001VLANd - complex networks on demand
2
Steve McIntyre98de3e92015-02-13 07:35:19 +00003What is VLANd?
4==============
5
Steve McIntyreda745712015-07-31 17:16:15 +01006VLANd is a python program intended to make it easy to manage
7port-based VLAN setups across multiple switches in a network. It is
8designed to be vendor-agnostic, with a clean pluggable driver API to
9allow for a wide range of different switches to be controlled
10together.
Steve McIntyre98de3e92015-02-13 07:35:19 +000011
12Various of the switch vendors have management applications available
13which should be able to do a similar job, but they're typically not
14scriptable, or locked to only control their own vendor's
15equipment. VLANd is designed (and hoped!) to be better. We've found
16that other network management programs also exist, but either they
17don't manage VLANs in the way we want or they depend on large
18frameworks like Openstack.
19
Steve McIntyrecc524702015-07-31 16:55:54 +010020VLANd currently includes four drivers for different models of switch
21from three different vendors:
22
23 * CiscoCatalyst for the Cisco Catalyst 3750 (and compatible)
24 * CiscoSX300 for the Cisco SF300 and SG300 (and compatible)
25 * NetgearXSM for the Netgear XSM 7224S (and compatible)
26 * TPLinkTLSG2XXX for the TP-Link TL-SG2216 (and compatible)
27
28These cover a range of switches across a huge range of prices, from
29100M up to 10G ports. VLANd supports interoperable VLANs across all
30these devices, verified using the Linaro test lab and our test suite.
31
Steve McIntyre04874362015-12-24 12:59:21 +000032VLANd also includes a "Dummy" switch driver which can be used for
33testing and validation. Read the comments in drivers/Dummy.py for more
34details on how to use it.
35
Steve McIntyrecc524702015-07-31 16:55:54 +010036It is expected that more drivers will be included in future
Steve McIntyre98de3e92015-02-13 07:35:19 +000037releases. Please feel free to propose more target devices, or (better)
38send patches!
39
40Why VLANd?
41==========
42
43VLANd has been written to accompany Linaro's LAVA platform.
44
45LAVA is the Linaro Automated Validation Architecture - see
46https://validation.linaro.org/ for more information.
47
48LAVA started off as a framework to help perform validation and testing
49on simple single devices such as Android development boards. Since
50then, the range of tests and devices has grown hugely. Some users have
51added multi-node tests, i.e. tests that start up multiple devices that
52run tests against each other (e.g. client-server testing). The next
53step on from that is to test devices with multiple network interfaces,
54where on top of the client-serer testing it is required that their
55connectivity can be controlled and isolated (e.g. for network
56performance testing).
57
58This can be done by simply changing physical network connections, of
59course, but that doesn't scale for sequences of tests and it makes a
60lie of the "Automated" bit in the LAVA definition.
61
62VLANd is the solution that we have implemented for this problem. It
63provides a simple VLAN management abstraction for users. LAVA can use
64VLANd to set up complex networks on demand as tests are initiated, and
65can then tear them down again when tests are complete.
66
Steve McIntyre31f35282014-12-12 22:12:33 +000067Dependencies
68============
69
Steve McIntyre98de3e92015-02-13 07:35:19 +000070postgres server and psycopg2, for the back-end database. See
Steve McIntyre9d897182014-12-22 17:51:08 +000071db/setup_db.py for help in setting up the database for access.
72
Steve McIntyre94ef65e2015-09-25 01:08:14 +010073If you want to use the visualisation feature, you'll need to install
74python-gd (used for generating the graphics) and a font for it to
75use. The default font suggested is Inconsolata, but others should work
76too.
77
Steve McIntyre98de3e92015-02-13 07:35:19 +000078How to use
79==========
80
81For now, things are easiest run as "vland" with appropriate
Steve McIntyre9d897182014-12-22 17:51:08 +000082permissions in the database for that user.
83
Steve McIntyre98de3e92015-02-13 07:35:19 +000084The core VLANd code is simple to configure - see vland.cfg for an
85example config file. Once your copy of VLANd is running, use the
86administration utility admin.py to control what it does. For now, this
87is single-threaded and has *no* security. This *will* change in the
88future, but for very early development has not been a priority.
Steve McIntyre9d897182014-12-22 17:51:08 +000089
Steve McIntyre94ef65e2015-09-25 01:08:14 +010090The visualisation interface has very few configuration options as
91yet - again, see the default vland.cfg.
92
Steve McIntyre98de3e92015-02-13 07:35:19 +000093Future plans
94============
95
96As a start...
97
98 * More documentation
99 * More drivers to control more devices, both real and virtual
Steve McIntyre94ef65e2015-09-25 01:08:14 +0100100 * Improved visualisation options
Steve McIntyre98de3e92015-02-13 07:35:19 +0000101 * Better (some!) security
Steve McIntyre836deec2015-02-13 07:42:51 +0000102 * Background sanity checking
Steve McIntyre98de3e92015-02-13 07:35:19 +0000103 * Other filtering options - MAC-based rather than just port-based
104 (needed to support virtual machines, etc.)
105
106If you have other ideas, please talk to us!
107
108Contact
109=======
Steve McIntyre9d897182014-12-22 17:51:08 +0000110
111VLANd mailing list: vland-devel@linaro.org
Steve McIntyre98de3e92015-02-13 07:35:19 +0000112
113Code
114====
115
116https://git.linaro.org/lava/vland.git
117
Steve McIntyre72fb3a32015-02-13 08:14:32 +0000118License
119=======
120
Steve McIntyrec03d68d2016-03-24 17:38:34 +0000121VLANd is Copyright 2014-2016 Linaro Limited, and is distributed under
Steve McIntyre72fb3a32015-02-13 08:14:32 +0000122the GNU General Public License, version 2 (or any later version). See
123the accompanying COPYING file for more details.
124
Steve McIntyre98de3e92015-02-13 07:35:19 +0000125--------------------------------------------------------------------------
Steve McIntyrec03d68d2016-03-24 17:38:34 +0000126README for VLANd 0.6, 24th March 2016
Steve McIntyre98de3e92015-02-13 07:35:19 +0000127Steve McIntyre <steve.mcintyre@linaro.org>