LCU14 BURLINGAME
D. Pigott, M. Hart, S. McIntyre & N. Williams, LCU14
LCU14-404: LAVA & VLANS - complex networks on demand
• History and Background• Real World Problems in the Lab• VLANs and the VLAN daemon• LAVA integration• Wrap up and Questions
Agenda
• LinaroAutomated Validation Architecture
• LAVA Lab started out with a handful of boards
o One rack, one server,a handful of boards and one switch
A brief history of LAVA and the LAVA Lab
Slide
• Todayo 10 racks, 12 dispatcherso 150+ ARM deviceso 3 Fast Model serverso QEMU, KVM...
• Multi-node comes alongo Multiple devices in one testo Increasing need to talk over
LAN with each other
The Lab starts growing
• LNG Rack turns upo On LAVA Network, but also their own private networko Cabling needs to be re-done almost on a test by test basis
Problem 1: Network Reconfiguration
This doesn’t scale any more!
• Some boards have USB ethernet, sharing MAC addresses on all interfaces
• Some boards share the same MAC address• We have to keep these separated, or bad stuff happens
Problem 2: “Broken” devices
Private switch
Lab network
• What is a VLAN?• VLAN daemon
o Some single-vendor proprietary options?o If it was easy, we’d be doing “apt-get install vland”o Eventually we will be!o Our automated cable monkey!
The solution: VLAN daemon
• Each physical port is connected to one VLAN• Ingress switch adds extra tags to each packet on input• Packets routed using VLAN tags• Egress switch removes the tags from packets on output
Port-based VLANs
Dispatcher server
“Broken” devices
Private switch
Lab network
“Broken” devices - after vland
Lab network
base vlan base vlan
• CreateVLAN (VLAN_name, switch/port, [switch/port, …])• DestroyVLAN (VLAN_name)• ShowBaseVLAN (switch/port)• SetBaseVLAN (VLAN_name, switch/port)• ListVLANbyName (string)• ListVLANbyConnection (switch [,port])
JSON API
• Admin interface to define network setup• Tell the database where the trunks, PDUs and servers are• “Protected” ports
• Sanity checks by the daemon• Does the switch setup match what we asked for?• Has anybody “unplugged” a switch?• Has a switch or PDU failed?
• Simple command line for admin
Admin
{ "role": "filter_one", "device_type": "keystone2", "interfaces": [ { "vlan": "input", "tags": [ "10G" ] }, { "vlan": "output", "tags": [ "1G" ] } ] }
LAVA Integration - VLAN multi-node syntax
• Set up and tear down ad-hoc port-based VLANs• Support “broken” devices• JSON API for LAVA (and other services)• Admin interface to define network setup• Protect “special” ports• Command line for admin• Sanity checks by the daemon• Support the Cisco switches we use in the lab
Targeted VLANd capabilities
• Drivers written for 2 models of switch• sX300 series• Catalyst 3750
• Simple test harness• Database next• Higher-level logic• Configuration & API
Current status / TODO
• KVM VLANs• Access control• Reset API• Transactional interface• Cross-site VLANs• Support for more switches - CLI/SNMP/Web UI?
Futures
Get Involved!
git://git.linaro.org/lava/vland.git
Code is GPL v2+
code
Questions?
More about Linaro Connect: connect.linaro.org Linaro members: www.linaro.org/membersMore about Linaro: www.linaro.org/about/
Top Related