Updated PR doc  in :
changeset:   190:c4d93e4c37f7
tag:         tip
user:        praveen.malv...@oracle.com
date:        Tue Sep 20 11:10:08 2016 +0530
summary:     amf: update PR doc for enhancements [#1608], [#1454] and [#1553]



---

** [tickets:#1553] AMF: Send CsiSetCallback immediately when CSI attributes are 
modified (loadbalancing, VM migration usecases)**

**Status:** fixed
**Milestone:** 5.1.FC
**Labels:** VM migration loadbalancer-synchronization 
**Created:** Wed Oct 21, 2015 10:03 AM UTC by Mathi Naickan
**Last Updated:** Mon Aug 29, 2016 12:35 PM UTC
**Owner:** Praveen


AMF is the 'workload' manager in OpenSAF. There are also loadbalancers external 
to OpenSAF that can choose to modify some attributes of an application 
component's workload which is currently assigned ACTIVE (without loss of 
service). In such scenarios it is possible (and necessary) for both AMF and the 
external load balancers to throttle each other. The reverse throttling(from AMF 
to the external load balancer) is possible based on any changes to the 
NodeCapacity limitations set in AMF, but that is for later/future 
considerations.

For eg:- Suppose an application component (say modelled in n-way active) is 
currently serving traffic originating from a source/target X, based on some 
network criteria the load balancer can choose to re-configure/modify that 
application to serve traffic from a different source/target Y. Such change in 
information related to that workload could be communicated to that application 
component at runtime without loss of service.

The above scenario is achieved if the admin (or a loadbalancer) modifies the 
attributes of a workload i.e. csiattribute name-value pair, and then the 
altered name-value information is communicated to that application or 
associated application components 'immediately' instead of waiting for the next 
admin operation!

Today AMF supports modifying csi attribute name-value without requiring that SI 
to be locked. But the modified attributes are sent only after a subsequent 
admin operation. This ticket is intended to evaluate and support sending 
CSIsetcallback (with the same CSI state information but modified csi 
attributes) immediately.

Implementation scope:
 Introduction of new resources: 
-saAmfInitialize_5() API,
-callback structure SaAmfCallbacksT_5 and
-CSI Attribute Change callback OsafCsiAttributeChangeCallbackT.
-new attribute osafAmfCSICommunicateCsiAttributeChange in class SaAmfCSI.
As a part of \#1553, minor version (SAF) of AMF will be updated to 02 because 
of introduction of  aobve mentioned resources in agent. So highest supported 
version now becomes B.04.02.

Description of new resources at agent:
A)OsafCsiAttributeChangeCallbackT
        AMF will use this callback to communicate to a running component
        any runtime change in the assigned CSI Attribute value.
        A component can register this callback using new API 
saAmfInitialize_5().
        Callback Characteristics:
                -Arguments:
                 typedef void (*OsafCsiAttributeChangeCalbackT)( SaInvocationT 
invocation,
                                const SaNameT *csiName, SaAmfCSIAttributeListT 
csiAttr);
                -After receving this callback, a component will have to respond 
to AMFND
                  using saAmfResponse_4() API with the same invocation number.
                -Callback will be invoked in the context of registered process.
                -Callback is meant for SA-Aware component, PROXIED PI component 
and
                 PROXIED NPI component. In cases of proxied it will be given to 
proxy.
                -Callback timeout will be same as 
saAmfCompCSISetCallbackTimeout or
                 saAmfCtDefCallbackTimeout.
B)SaAmfCallbacksT_5 (new callback structure)
        typedef struct {
                SaAmfHealthcheckCallbackT                   
saAmfHealthcheckCallback;
                SaAmfComponentTerminateCallbackT            
saAmfComponentTerminateCallback;
                SaAmfCSISetCallbackT                        saAmfCSISetCallback;
                SaAmfCSIRemoveCallbackT                     
saAmfCSIRemoveCallback;
                SaAmfProtectionGroupTrackCallbackT_4        
saAmfProtectionGroupTrackCallback;
                SaAmfProxiedComponentInstantiateCallbackT   
saAmfProxiedComponentInstantiateCallback;
                SaAmfProxiedComponentCleanupCallbackT       
saAmfProxiedComponentCleanupCallback;
                SaAmfContainedComponentInstantiateCallbackT 
saAmfContainedComponentInstantiateCallback;
                SaAmfContainedComponentCleanupCallbackT     
saAmfContainedComponentCleanupCallback;
                OsafCsiAttributeChangeCallbackT             
osafCsiAttributeChangeCallback;
        } SaAmfCallbacksT_5;
        This is new callback structure consisting of all B.04.01 callbacks and 
newly
        introduced OsafCsiAttributeChangeCallbackT. A component can register all
        callbacks including new one with new API saAmfInitialize_5().
C)New API:  SaAisErrorT saAmfInitialize_5( SaAmfHandleT *amfHandle, const 
SaAmfCallbacksT_5
                *amfCallbacks, SaVersionT *version)
        Applicable return codes are same as valid for saAmfInitialize_4().
        New API for initializing with AMF service for all callbacks including 
the new one.
        New saf version for this is B.04.02. A user will have to compulsory 
register
        OsafCsiAttributeChangeCallbackT callback along with other mandatory 
callbacks to
        initialize with AMF service using this API.
-Attribute osafAmfCSICommunicateCsiAttributeChange in class SaAmfCSI.
        A NON Proxied NPI component neither registers with AMF nor it is 
registered via
        any Proxy component. AMF manages only Life Cycle of this component 
through
        CLC-CLI scripts. All CLC-CLI scripts are idempotents. For such a 
component, AMF
        passes name-value pairs of CSI as environment variables to each CLC-CLI 
command.
        If there is a change in CSI attribute value for a CSI assigned to NON 
PROXIED NPI
        component, the change will be passed to the component as environment 
variables by
        executing INSTANTIATED command provided 
osafAmfCSICommunicateCsiAttributeChange is
        marked true for the assigned CSI.




---

Sent from sourceforge.net because opensaf-tickets@lists.sourceforge.net is 
subscribed to https://sourceforge.net/p/opensaf/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/opensaf/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
_______________________________________________
Opensaf-tickets mailing list
Opensaf-tickets@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets

Reply via email to