----- Original Message -----
> From: "Antoni Segura Puimedon" <asegu...@redhat.com>
> To: vdsm-devel@lists.fedorahosted.org
> Cc: "Alona Kaplan" <alkap...@redhat.com>
> Sent: Tuesday, December 4, 2012 7:32:34 PM
> Subject: [vdsm] link state semantics
> 
> Hi list!
> 
> We are working on the new 3.2 feature for adding support for updating
> VM
> devices, more specifically at the moment network devices.
> 
> There is one point of the design which is not yet consensual and we'd
> need to agree on a proper and clean design that would satisfy us all:
> 
> My current proposal, as reflected by patch:
>    http://gerrit.ovirt.org/#/c/9560/5/vdsm_api/vdsmapi-schema.json
> and its parent is to have a linkActive boolean that is true for link
> status 'up' and false for link status 'down'.
> 
> We want to support a none (dummy) network that is used to dissociate
> vnics
> from any real network. The semantics, as you can see in the patch are
> that
> unless you specify a network, updateDevice will place the interface
> on that
> network. However, Adam Litke argues that not specifying a network
> should
> keep the vnic on the network it currently is, as network is an
> optional
> parameter and 'linkActive' is also optional and has this "preserve
> current
> state" semantics.
> 
> I can certainly see the merit of what Adam proposes, and the
> implementation
> would be that linkActive becomes an enum like so:
> 
> {'enum': 'linkState'/* or linkActive */ , 'data': ['up', 'down',
> 'disconnected']}
> 

If you are going for this use 'linkState'

> With this change, network would only be changed if one different than
> the current
> one is specified and the vnic would be taken to the dummy bridge when
> the linkState
> would be set to 'disconnected'.

In general +1 for new one, with a little doubt.
It looks a bit inconsistent that we leave the network as is if it omitted from 
input,
but if linkState is 'disconnected' we will move it to dummy bridge.
But I can live with it.

> 
> There is also an objection, raised by Adam about the semantics of
> portMirroring.
> The current behavior from my patch is:
> 
> portMirroring is None or is not set -> No action taken.
> portMirroring = [] -> No action taken.
> portMirroring = [a,b,z] -> Set port mirroring for nets a,b and z to
> the specified vnic.
> 
> His proposal is:
> portMirroring is None or is not set -> No action taken.
> portMirroring = [] -> Unset port mirroring to the vnic that is
> currently set.
> portMirroring = [a,b,z] -> Set port mirroring for nets a,b and z to
> the specified vnic.
> 

+1 for Adam's approach, just don't forget to unset portMirroring from all nets 
setted before
if they not in new portMirroring = [a,b,z]

> I would really welcome comments on this to have finally an agreement
> to the api for this
> feature.
> 
> Best,
> 
> Toni
> _______________________________________________
> vdsm-devel mailing list
> vdsm-devel@lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel
> 
_______________________________________________
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel

Reply via email to