The vm-uuid external id in the interface table will uniquely identify a VM that is connected to a bridge through that interface. In xenserver, this will have the same value as the external id - xs-vm-uuid.
Signed-off-by: Gurucharan Shetty <[email protected]> --- tests/ovs-xapi-sync.at | 8 ++++---- vswitchd/vswitch.xml | 5 +++++ .../usr_share_openvswitch_scripts_ovs-xapi-sync | 3 +++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/ovs-xapi-sync.at b/tests/ovs-xapi-sync.at index 7c467bb..4521b45 100644 --- a/tests/ovs-xapi-sync.at +++ b/tests/ovs-xapi-sync.at @@ -51,7 +51,7 @@ AT_CHECK([ovs_vsctl \ -- set Interface vif1.0 'external-ids={attached-mac="00:11:22:33:44:55", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"'}]) OVS_WAIT_UNTIL([ovs_vsctl get interface vif1.0 external-ids:iface-id >/dev/null 2>&1]) AT_CHECK([ovs_vsctl get interface vif1.0 external-ids], [0], - [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"} + [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"} ]) # Add corresponding tap and check daemon's work. @@ -60,15 +60,15 @@ OVS_WAIT_UNTIL([ovs_vsctl get interface tap1.0 external-ids:iface-id >/dev/null AT_CHECK([ovs_vsctl \ -- get interface vif1.0 external-ids \ -- get interface tap1.0 external-ids], [0], - [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=inactive, xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"} -{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"} + [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=inactive, vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"} +{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"} ]) # Remove corresponding tap and check daemon's work. AT_CHECK([ovs_vsctl del-port tap1.0]) OVS_WAIT_UNTIL([test `ovs_vsctl get interface vif1.0 external-ids:iface-status` = active]) AT_CHECK([ovs_vsctl get interface vif1.0 external-ids], [0], - [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"} + [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"} ]) AT_CLEANUP diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index cd50f55..5b5c721 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -1847,6 +1847,11 @@ The virtual network to which this interface is attached. </column> + <column name="external_ids" key="vm-uuid"> + The VM to which this interface belongs. On XenServer, this will be the + same as <ref column="external_ids" key="xs-vm-uuid"/>. + </column> + <column name="external_ids" key="xs-vm-uuid"> The VM to which this interface belongs. </column> diff --git a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync index b10df6b..9f02b35 100755 --- a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync +++ b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync @@ -316,6 +316,9 @@ def main(): iface_id = None set_external_id(row, "iface-id", iface_id) + # Copy xs-vm-uuid to vm-uuid + set_external_id(row, "vm-uuid", row.external_ids.get("xs-vm-uuid")) + # When there's a vif and a tap, the tap is active (used for # traffic). When there's just a vif, the vif is active. # -- 1.7.2.5 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
