Comment 2 for bug 1723891

Revision history for this message
sunzuohua (zuohuasun) wrote :

I have read neutron source code and have found the reason:
When assigning a fip to a VM, a callback for fip update event is invoked[1].
Then a fip agent port for the host bound to the fixed port is created as follows:
[1]->[2]->[3]
[1]https://github.com/openstack/neutron/blob/master/neutron/db/l3_dvr_db.py#L321
[2]https://github.com/openstack/neutron/blob/master/neutron/db/l3_dvr_db.py#L840
[3]https://github.com/openstack/neutron/blob/master/neutron/db/l3_dvr_db.py#L865

The details of the fip agent port is as follows:
+-----------------------+---------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+---------------------------------------------------------------------------------+
| admin_state_up | True |
| allowed_address_pairs | |
| binding:host_id | shz-server87 |
| binding:profile | {} |
| binding:vif_details | {} |
| binding:vif_type | binding_failed |
| binding:vnic_type | normal |
| created_at | 2017-10-17T02:09:27Z |
| description | |
| device_id | f83bc76a-917d-457b-a472-c34610621454 |
| device_owner | network:floatingip_agent_gateway |
| extra_dhcp_opts | |
| fixed_ips | {"subnet_id": "5ba473f5-44e2-411c-80e6-c13d15b6b1cc", "ip_address": "9.9.9.15"} |
| id | 46a91872-d25b-4ccc-9d04-0b8c894ace67 |
| mac_address | fa:16:3e:93:36:28 |
| name | |
| network_id | af256bab-acbc-419c-bdcf-3ba6708da4af |
| port_security_enabled | False |
| project_id | |
| qos_policy_id | |
| revision_number | 4 |
| security_groups | |
| status | DOWN |
| tags | |
| tenant_id | |
| updated_at | 2017-10-17T02:09:28Z |
+-----------------------+---------------------------------------------------------------------------------+