Ok, then that makes even less sense. I am not sure I understand why a nova-compute restart blow up the metadata on the port. I would argue that this is not a neutron bug but a nova/os-vif bug where not all metadata are restored upon interface recreation, assumed one is necessary.
As for your last question: yes, storing trunk details in the interface external_ids is done for performance lookup reasons. That avoids many OVSDB queries or even going back to the server. It's build on the fundamental premise that OVSDB is reliable.
Ok, then that makes even less sense. I am not sure I understand why a nova-compute restart blow up the metadata on the port. I would argue that this is not a neutron bug but a nova/os-vif bug where not all metadata are restored upon interface recreation, assumed one is necessary.
As for your last question: yes, storing trunk details in the interface external_ids is done for performance lookup reasons. That avoids many OVSDB queries or even going back to the server. It's build on the fundamental premise that OVSDB is reliable.