Ack. I think implementation details should go in PR doc also(not to mention internal amfd and amfnd changes).
Thanks, Praveen On 23-Aug-16 12:44 PM, Long HB Nguyen wrote: > 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
