Changes at AMFD (CSI Attribute Change Callback):
1)Support for new attribute osafAmfCSICommunicateCsiAttributeChange in class
SaAmfCSI.
Dynamic modification of this attribute is supported. Default value will be 0.
2)New message AVSV_D2N_COMPCSI_ASSIGN_MSG from AMFD to AMFND for compcsi related
information. As of now only CSI attribute list will be sent to AMFND.
In future it can be used in the context of tickets like \#538 (TERM_FAILED
state) and \#83.
3)Upon modification of CSI attribute value for a object of class
"SaAmfCSIAttribute",
AMFD will send a message to AMFND with new list. For a NON PROXIED NPI
component,
message will not be sent if osafAmfCSICommunicateCsiAttributeChange is false.
For such a component, change will come into effect only when its SI is locked
and unlocked or other such ways.
4)AMFD now also maintains MDS install version of all AMFNDs in
std::map<SaClmNodeIdT, MDS_SVC_PVT_SUB_PART_VER> nds_mds_ver_db.
It will be updated whenever AMFD gets MDS_UP and MDS_DOWN for AMFND.
Using this AMFD can decide whether message is meant for particular AMFND much
before encode callback given by MDS.
Changes at AMFND (CSI Attribute Change Callback):
1)New internal AMF callback from AMFND to AMF agent corresponding to
OsafCsiAttributeChangeCallbackT for giving modified CSI Attribute
Name value pairs to component (AVSV_AMF_CSI_ATTR_CHANGE_PARAM).
2)AMFND processes AVSV_D2N_COMPCSI_ASSIGN_MSG from AMFD. Upong receving
CSI attribute list, it updates its databae with modified information.
If compoent has registered with new callback OsafCsiAttributeChangeCallbackT,
then it will send this modification through internal callback
AVSV_AMF_CSI_ATTR_CHANGE_PARAM
to AMF agent.
3)AMFND now maintains MDS install version of AMF AGENTs in
std::map<MDS_DEST, MDS_SVC_PVT_SUB_PART_VER> agent_mds_ver_db.
It will be updated whenever AMFND gets MDS_UP and MDS_DOWN for AMF Agent.
Using this AMFND can decide whether message is meant for particular Agent much
before encode callback given by MDS.
4)AMFND maintains now SAF version for each registered component.
AMFND will get it from Agent through existing component registeration message.
Changes at AMF Agent (CSI Attribute Change Callback):
1)Because of different AMF callback struture correponding to each of B.01.01
B.04.01, introduced an internal callback structure OsafAmfCallbacksT.
It consists of callback from each AMF version. Since callback for each
intialization needs to be maintained internally in AVA_HDL_REC. With this
internal structure, same handle can used internally for any initialization
of AMF service. Here it is:
typedef struct osaf_amf_cbk {
SaAmfHealthcheckCallbackT
saAmfHealthcheckCallback;
SaAmfComponentTerminateCallbackT
saAmfComponentTerminateCallback;
SaAmfCSISetCallbackT saAmfCSISetCallback;
SaAmfCSIRemoveCallbackT
saAmfCSIRemoveCallback;
SaAmfProtectionGroupTrackCallbackT
saAmfProtectionGroupTrackCallback;
SaAmfProtectionGroupTrackCallbackT_4
saAmfProtectionGroupTrackCallback_4; //Only in B.04.01
SaAmfProxiedComponentInstantiateCallbackT
saAmfProxiedComponentInstantiateCallback;
SaAmfProxiedComponentCleanupCallbackT
saAmfProxiedComponentCleanupCallback;
SaAmfContainedComponentInstantiateCallbackT
saAmfContainedComponentInstantiateCallback;
SaAmfContainedComponentCleanupCallbackT
saAmfContainedComponentCleanupCallback;
OsafCsiAttributeChangeCallbackT
osafCsiAttributeChangeCallback; //OpenSAF implementation.
} OsafAmfCallbacksT;
Also added utility function to copy callbacks from AMF callbacks structure to
this internal one.
AMF agent will use OsafAmfCallbacksT internally instead of
SaAmfCallbacksT_<#x>.
2)Implementation of saAmfInitialize_5() in ava_api.cc.
3)Now saAmfRegister() also sends SAF version to AMFND.
Will update more on AMFD and AMFND MDS versioning before publishing the patches.
---
** [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 Jul 25, 2016 06:09 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.------------------------------------------------------------------------------
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