在openstack中目前用的比较多的L2层agent应该就是openvswitch agent了。本文大致分析了一下openvswithc agent做了哪些事。
看一下openvswitch agent的启动:
neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:main()
plugin = OVSNeutronAgent(**agent_config)
self.setup_rpc()
self.plugin_rpc = OVSPluginApi(topics.PLUGIN)
self.state_rpc = agent_rpc.PluginReportStateAPI(topics.PLUGIN)
self.connection = agent_rpc.create_consumers(...)
heartbeat = loopingcall.FixedIntervalLoopingCall(self._report_state)
self.setup_integration_br()
self.setup_physical_bridges(bridge_mappings)
self.sg_agent = OVSSecurityGroupAgent(...)
plugin.daemon_loop()
self.rpc_loop()
port_info = self.update_ports(ports)
sync = self.process_network_ports(port_info)
启动时做了以下工作:
1. 设置plugin_rpc,这是用来与neutron-server通信的。
2. 设置state_rpc,用于agent状