- Description has changed:

Diff:

~~~~

--- old
+++ new
@@ -7,9 +7,59 @@
 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:
-1)Upon modification of CSI attribute, AMF will send a CSI Set callback to the 
component (to which corresponding CSI is assigned) with same HA state. Callback 
will contain list of all configured csiattribute name-value pairs (not only the 
changed one). If CSI is not assigned, then no callback will be issued.
-Note: AMF spec does not talk about reinvocation of CSI set callback in the 
context of csi-attribute modification. But reinvocation of calback with same HA 
state information is discussed in case like failure handing in N-Way model  AMF 
B.04.01 "3.6.4.5 Failure Handling " page 167.
-2)All characteristics associated with a CSI SET callback will be applicable 
with respect to invocation of callback like waiting response from component via 
saAmfResponse() API and generation of error report if component does not 
respond within the configured callbacktimeout.
-3)Feature will be configurable either through amfd.conf or via some attribute 
in CSI. It means if the feature is enabled then only AMF will invoke callback 
on component. If feature is disabled then existing behaviour will continue 
which means change will come into effect via lock/unlock of SI and other 
similar means involving reassignment of SI.
-4) Although  CLC-CLI commands are idempotents as per spec, modification of CSI 
attribture for a NPI component will not lead to re-execution of INSTANTIATE 
command for a NPI component. For such a component existing behavior will 
continue.
-5)Since all middleware components are sa-aware, this feature will be supported 
for MW services also.
+ 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.
+

~~~~

- **Comment**:

Invoking CSI set callback whenever CSI attribute value is changed seems 
in-consistent with the HA state diagram mentioned on page 83 of AMF B0401 spec 
as CSI set callback is given only when there is a change in HA state of CSI. To 
avoid inconsistency introducing new callback and other resources. Please check 
the implementation scope in ticket description.



---

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

**Status:** accepted
**Milestone:** 5.1.FC
**Labels:** VM migration loadbalancer-synchronization 
**Created:** Wed Oct 21, 2015 10:03 AM UTC by Mathi Naickan
**Last Updated:** Mon Apr 11, 2016 10:02 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 [email protected] 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.
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets

Reply via email to