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

Reply via email to