osaf/services/saf/amf/README | 72 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/osaf/services/saf/amf/README b/osaf/services/saf/amf/README new file mode 100755 --- /dev/null +++ b/osaf/services/saf/amf/README @@ -0,0 +1,72 @@ +# +# -*- OpenSAF -*- +# +# (C) Copyright 2016 The OpenSAF Foundation +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. This file and program are licensed +# under the GNU Lesser General Public License Version 2.1, February 1999. +# The complete license can be accessed from the following location: +# http://opensource.org/licenses/lgpl-license.php +# See the Copying file included with the OpenSAF distribution for full +# licensing terms. +# +# Author(s): Ericsson AB +# + +GENERAL +------- + +This is a description of how the AMF service supports long DNs. +Ticket: https://sourceforge.net/p/opensaf/tickets/1642 +This enhancement is part of the general enhancement for supporting long +DNs in OpenSAF introduced by ticket: #191. Ticket #1642 adds support for +long DNs to AMF. + +CONFIGURATION +------------- + +To enable support for long DNs/RDNs in IMM, the longDnsAllowed +attribute must be enabled using the following command: + +immcfg -a longDnsAllowed=1 opensafImm=opensafImm,safApp=safImmService + +The IMM service will reject attempts to set the longDnsAllowed attribute +back to 0 if the IMM database contains objects with DNs longer than 255 bytes +or RDNs longer than 64 bytes. + +To enable long DN support, an application must follow these things: +- Compile the application with the SA_EXTENDED_NAME_SOURCE preprocessor +macro defined. +- Set the environment variable SA_ENABLE_EXTENDED_NAMES to 1 before +the first call to any SAF API. +- Treat the SaNameT type as opaque and use the SaNameT tunnelling primitives +saAisNameLend(), saAisNameBorrow() to manipulate SaNameT variables. + +IMPLEMENTATION DETAILS +---------------------- + +The implementation has been adapted to the "tunnelling" solution provided +by the OpenSAF generic patch (#191). +Please see the document below on how to use the SaNameT tunnelling primitives: + OpenSAF_Extensions_PR.odt + +This implementation also includes following enhancements: +1) Replace internal SaNameT variables with std::string variables in amfd, amfnd. +2) Replace patricia trees with std::map in amfnd. + +saAmfDispatch() may return SA_AIS_ERR_NAME_TOO_LONG if an application which +does not support long DN, receives an AMF callback containing a long DN entity. +An application should not be configured with long DN entities until long DN +support has been added. + +In AMF B.01.01 spec, the application can free extended SaNameT variables in +SaAmfProtectionGroupNotificationBufferT using the example below: + SaAmfProtectionGroupNotificationBufferT buff; + ... + for ( i=0; i<buff.numOfItems; i++) { + if (strlen(saAisNameBorrow(buff.notification[i].member.comp_name)) > + SA_MAX_UNEXTENDED_NAME_LENGTH) + free(saAisNameBorrow(buff.notification[i].member.comp_name)); + } ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
