Neutron agent port population
I'm writing a Neutron agent that is different from the other main agents (e.g. OVS, Linux bridge, SR-IOV) in 2 ways
- It does not run on a compute node (it has a separate control channel to another network switch; as long as it can talk to AMQP and this other control channel, it can reside anywhere)
- It needs to have all the firewall rules for all networks and ports.
The most often used agents (OVS) poll for local changes to detect new ports: Nova will plug a port into the integration bridge, and then Neutron will notice it on an OVSDB query and request port information for it.
I need my agent to get updates from Neutron server of all port updates, or at least the 'device' attribute so I can make a query through the security group API. The port_update channel in AMQP never receives messages (or so it seems, when I watched it with amqp-spy), and I need the port info so I can respond when I receive a notification on the security rules update channel (which only pushes the UUID of the security group).
Any ideas on how I might populate/retrieve this info?
I think I may be missing some AMQP topic subscription, or something else in the server <-> agent API, but I'm having a hard time searching for solutions.