- **status**: accepted --> review
- **Comment**:
Published intial version with some TODOs:
1)Invocation of INSTANTIATE command for a Non Proxied NPI component.
2)Introduce saAmf_B_04_02.h for new resources at agent.
3)These patches are old (work done in 5.0), so
re-base over #1642(AMF long dn) and other C++ refactoring.
---
** [tickets:#1553] AMF: Send CsiSetCallback immediately when CSI attributes are
modified (loadbalancing, VM migration usecases)**
**Status:** review
**Milestone:** 5.1.FC
**Labels:** VM migration loadbalancer-synchronization
**Created:** Wed Oct 21, 2015 10:03 AM UTC by Mathi Naickan
**Last Updated:** Tue Jul 26, 2016 07:24 AM 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.------------------------------------------------------------------------------
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets