has changed on the host • OVS agent scans all the ports in the machine • It keeps track of the ports that has already processed using an internal dict (registered_ports) • Diff registered_ports with the result of the scanning → infer devices added and deleted
herein is subject to change without notice. The OpenStack TM attribution statement should used: The OpenStack wordmark and the Square O Design, together or part, are trademarks or registered trademarks of OpenStack Foundation in the United States and other countries, and are used with the OpenStack Foundation’s permission. L3 Agent
herein is subject to change without notice. 14 Deployment • Network Hosts – Legacy with 1 Agent – HA with more than 1 Agent – DVR • Centralized part is like Legacy – API Available to manage association • Compute Hosts – DVR • Distributed part bound to multiple hypervisors
herein is subject to change without notice. 16 Router Internals • Network namespaces (ip netns) • L2 Interfaces moved into namespace – OVS port – Veth pair (virtual cables) • IP address configured on interfaces • Simple routing and extra routes • Iptables for NAT and metadata • Proxy for metadata access • External access for instances without floating IP • Advanced Services – FWaaS – VPNaaS
update the status (up/down) of several devices • Add a parameter: failed devices • Don't refresh all the devices when security_groups_provider_updated is got but just those affected • Add the attributes modified in port update so that the L2 agent can decide if reprocessing is needed
an error is got • Add a parameter in the RPC calls that collects the devices that caused an error • The OVS agent can resync only the devices that failed The operation can be retried or failure ignored
the command line for OVSDB monitor use the OVS Python library • Create a queue of events to be processed so that multiple workers can be introduced • Add priority to events so that higher priority events can be processed first • Improve state convergence between agent and the server (resilience in case of failure)
herein is subject to change without notice. The OpenStack TM attribution statement should used: The OpenStack wordmark and the Square O Design, together or part, are trademarks or registered trademarks of OpenStack Foundation in the United States and other countries, and are used with the OpenStack Foundation’s permission. L3 Agent Restructuring
herein is subject to change without notice. 29 Handyman Model • One big file, one object: the agent • Jack of all trades – Worse: it was a bit forgetful
herein is subject to change without notice. 30 Contractor Model • Time to move to a contractor model – Agent is the contractor – Calls in specialists to do the work – One contractor for network node, other for hypervisor
herein is subject to change without notice. 33 Future Work • Eliminate full sync on router • Too much internal state • Simplify DVR • L3 VPN • Eliminate IPv4 waste • DVR for IPv6